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 的用法和参数说明,请查阅源码或联系开发者社区。