Skip to content

RPA操作

⚠️ 注意:所有 RPA 操作中的 target 参数,均为需要操作的对象“名称”(如好友昵称、群聊名称),而非 ID。由于 RPA 方案无法直接获取微信 ID,请确保名称唯一且准确。

⚠️ 文件、图片等路径参数必须为本地磁盘的绝对路径,不能为网络URL。请在插件逻辑中提前完成下载等耗时操作,Action 只负责本地自动化。

* 带星号的功能为闭源版本功能,用户需自行开发,开源版本不包含相关代码。

Omni Bot SDK 内置了丰富的 RPA 操作类型,开发者可以在插件中灵活调用,实现自动化消息、文件、群管理等多种操作。

可用的 RPA Action Handler 一览

操作类型Action 类名主要参数说明典型用途
发送文本消息SendTextMessageActioncontent(消息内容), target(对象名称), is_chatroom(是否群聊), at_user_name(@用户名,仅群聊), quote_message(引用消息内容), random_at_quote(是否随机@/引用)发送文字到好友/群
发送图片SendImageActionimage_path(图片路径), target, is_chatroom发送图片到好友/群
发送文件SendFileActionfile_path(文件路径), target, is_chatroom发送文件到好友/群
转发消息ForwardMessageAction(暂无参数,后续可扩展)转发一条消息
下载图片DownloadImageActiontarget(对象名称), max_count(下载数量,默认1)下载图片
下载视频DownloadVideoActiontarget, name(视频名称,可选), max_count(下载数量,默认1), is_chatroom下载视频
下载文件DownloadFileActionfile_url(文件URL), save_path(保存路径)下载文件
拍一拍PatActiontarget(对象名称), user_name(被拍用户昵称,群聊时用), is_chatroom拍一拍好友/群成员
邀请进群*Invite2RoomActionuser_name(被邀请人昵称), target(群聊名称)邀请用户进群
新好友操作*NewFriendActionuser_name(新好友昵称), action(同意/拒绝/忽略), response(拒绝时回复内容), index(可选)同意/拒绝/忽略新好友
发送朋友圈*SendPyqActionimages(图片列表), content(文案)发表朋友圈
群公告PublicRoomAnnouncementActioncontent(公告内容), target(群聊名称), force_edit(是否强制编辑)发布群公告
群成员移除RemoveRoomMemberActionuser_name(被移除成员昵称), target(群聊名称)移除群成员
群名修改RenameRoomNameActiontarget(群聊名称), name(新群名)修改群名
群备注修改RenameRoomRemarkActiontarget(群聊名称), remark(新备注)修改群备注
群昵称修改RenameNameInRoomActiontarget(群聊名称), name(新昵称)修改自己在群的昵称
退出群聊LeaveRoomActiontarget(群聊名称)退出群聊
切换会话SwitchConversationActiontarget(对象名称)切换到指定会话

具体参数和更多操作请参考源码 omni_bot_sdk/rpa/action_handlers/ 目录。


在插件中返回RPA操作的示例

插件开发者可以在 handle_message 方法中,构造对应的 Action 并通过 add_rpa_actionadd_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 的用法和参数说明,请查阅源码或联系开发者社区。

Released under the GPL3.0 License.