RPA操作
⚠️ 注意:所有 RPA 操作中的
target
参数,均为需要操作的对象“名称”(如好友昵称、群聊名称),而非 ID。由于 RPA 方案无法直接获取微信 ID,请确保名称唯一且准确。⚠️ 文件、图片等路径参数必须为本地磁盘的绝对路径,不能为网络URL。请在插件逻辑中提前完成下载等耗时操作,Action 只负责本地自动化。
* 带星号的功能为闭源版本功能,用户需自行开发,开源版本不包含相关代码。
Omni Bot SDK 内置了丰富的 RPA 操作类型,开发者可以在插件中灵活调用,实现自动化消息、文件、群管理等多种操作。
可用的 RPA Action Handler 一览
操作类型 | Action 类名 | 主要参数说明 | 典型用途 |
---|---|---|---|
发送文本消息 | SendTextMessageAction | content (消息内容), target (对象名称), is_chatroom (是否群聊), at_user_name (@用户名,仅群聊), quote_message (引用消息内容), random_at_quote (是否随机@/引用) | 发送文字到好友/群 |
发送图片 | SendImageAction | image_path (图片路径), target , is_chatroom | 发送图片到好友/群 |
发送文件 | SendFileAction | file_path (文件路径), target , is_chatroom | 发送文件到好友/群 |
转发消息 | ForwardMessageAction | (暂无参数,后续可扩展) | 转发一条消息 |
下载图片 | DownloadImageAction | target (对象名称), max_count (下载数量,默认1) | 下载图片 |
下载视频 | DownloadVideoAction | target , name (视频名称,可选), max_count (下载数量,默认1), is_chatroom | 下载视频 |
下载文件 | DownloadFileAction | file_url (文件URL), save_path (保存路径) | 下载文件 |
拍一拍 | PatAction | target (对象名称), user_name (被拍用户昵称,群聊时用), is_chatroom | 拍一拍好友/群成员 |
邀请进群* | Invite2RoomAction | user_name (被邀请人昵称), target (群聊名称) | 邀请用户进群 |
新好友操作* | NewFriendAction | user_name (新好友昵称), action (同意/拒绝/忽略), response (拒绝时回复内容), index (可选) | 同意/拒绝/忽略新好友 |
发送朋友圈* | SendPyqAction | images (图片列表), content (文案) | 发表朋友圈 |
群公告 | PublicRoomAnnouncementAction | content (公告内容), target (群聊名称), force_edit (是否强制编辑) | 发布群公告 |
群成员移除 | RemoveRoomMemberAction | user_name (被移除成员昵称), target (群聊名称) | 移除群成员 |
群名修改 | RenameRoomNameAction | target (群聊名称), name (新群名) | 修改群名 |
群备注修改 | RenameRoomRemarkAction | target (群聊名称), remark (新备注) | 修改群备注 |
群昵称修改 | RenameNameInRoomAction | target (群聊名称), name (新昵称) | 修改自己在群的昵称 |
退出群聊 | LeaveRoomAction | target (群聊名称) | 退出群聊 |
切换会话 | SwitchConversationAction | target (对象名称) | 切换到指定会话 |
具体参数和更多操作请参考源码
omni_bot_sdk/rpa/action_handlers/
目录。
在插件中返回RPA操作的示例
插件开发者可以在 handle_message
方法中,构造对应的 Action 并通过 add_rpa_action
或 add_rpa_actions
返回。例如:
发送文本消息
python
from omni_bot_sdk.plugins.interface import Plugin, PluginExcuteContext
from omni_bot_sdk.rpa.action_handlers import SendTextMessageAction
class DemoPlugin(Plugin):
# ... 省略其它方法 ...
async def handle_message(self, context: PluginExcuteContext):
# 假设收到特定消息时自动回复
message = context.get_message()
if message.text == "你好":
action = SendTextMessageAction(
content="你好,我是机器人!",
target=message.from_user, # 目标用户
is_chatroom=message.is_group # 是否群聊
)
self.add_rpa_action(action)
发送图片
python
from omni_bot_sdk.rpa.action_handlers import SendImageAction
# ... 在 handle_message 内部 ...
action = SendImageAction(
image_path="/path/to/image.jpg",
target=message.from_user,
is_chatroom=message.is_group
)
self.add_rpa_action(action)
邀请用户进群
python
from omni_bot_sdk.rpa.action_handlers import Invite2RoomAction
# ... 在 handle_message 内部 ...
action = Invite2RoomAction(
user_name="wxid_xxx",
target="群聊名称"
)
self.add_rpa_action(action)
发送朋友圈
python
from omni_bot_sdk.rpa.action_handlers import SendPyqAction
# ... 在 handle_message 内部 ...
action = SendPyqAction(
images=["/path/to/img1.jpg", "/path/to/img2.jpg"],
content="自动发朋友圈测试"
)
self.add_rpa_action(action)
开发建议
- 每个 Action 类的参数请参考源码注释,确保传递正确。
- 支持批量操作:
self.add_rpa_actions([action1, action2, ...])
- 插件可组合多种 Action,实现复杂自动化流程。
如需更多 Action Handler 的用法和参数说明,请查阅源码或联系开发者社区。