企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
对于命令,该插件分的比较细,具体要求请继续往下看 > 提示:原始报文可以通过session.info来查看(dict) 首先我们先看一下信息的发送方式 ## 信息回复方式 回复信息时,我们也有三个方式来回复: 1. 方法一: ``` session.send_text_msg(f'机器人回复啦on_command2') ``` 2. 方法二: ``` from bot.kernel.bot_func import * # 这个写在模块级更好 info = session.info robot_wxid = info['robot_wxid'] # info 的具体情况请查看文档 from_wxid = info['from_wxid'] send_text_msg(robot_wxid, from_wxid, '你好') ``` 3. 方法三:不推荐 ``` from flask import current_app as bot session = bot.session # 其实根本没必要 , 因为这个session和参数的session是同一个对象 session.send_text_msg(f'机器人回复啦on_command2') ``` > 一般我们用到的是方法一,直接对给我们发信息的人 > 但是我们有时候也需要用到方法二,比如取所有有登录的机器人,再比如我收到一条信息后,我不想回给他本人,而是要发送给其他人,这就要用到方法二了 > 示例中只演示了send_text_msg方法,其他方法可以查看api列表(暂时还没写) # on_command > 该装饰器主要处理好友信息和群信息 * 对于文字信息,代码格式为: ``` def register(bot_app): @bot_app.on_command("命令名", ['别名1', '别名多用']) def test(args, session): pass ``` 正如我们demo中的样例说明,命令名和别名列表可以在不同`插件/函数`之间有交集,此时只要符合的命令都会去执行: ``` def register(bot_app): @bot_app.on_command("命令名", ['别名1', '别名多用']) def test1(args, session): session.send_text_msg('机器人回复啦1') @bot_app.on_command("命令名2", ['别名2', '别名多用']) def test2(args, session): send_text_msg('机器人回复啦2') ``` 比如我们用微信给机器人发送`别名多用`,会分别收到`机器人回复啦1` 和 `机器人回复啦2`两条回复 * 对于`图片消息`、`语音消息`、`视频`、`地理位置`信息(还有一部分暂时还没想好怎么处理,暂时忽略),代码格式分别为: ``` def register(bot_app): @bot_app.on_command('media_image') def media_image(msg, session): # session.send_text_msg(f'机器人回复啦 media_image') pass @bot_app.on_command('media_audio') def media_audio(msg, session): # session.send_text_msg(f'机器人回复啦 media_audio') pass @bot_app.on_command('media_video') def media_video(msg, session): # session.send_text_msg(f'机器人回复啦 media_video') pass @bot_app.on_command('media_location') def media_location(msg, session): # session.send_text_msg(f'机器人回复啦 media_location') pass ``` > 其中的装饰器和函数声明不能修改,不同的情况信息类型使用不同的命令名,无别名,可以和文字信息一样写在plugins下,但是建议写在bot.plugins.fix.__init__下,统一管理 ## on_request > 该装饰器主要处理好友请求和群成员增删信息(群邀请在群command中的文本类型中) ``` def register(bot_app): @bot_app.on_request("group_member_add") def group_member_add(json_data, session): # session.send_text_msg(f'机器人回复啦 group_member_add') pass @bot_app.on_request("group_member_decrease") def group_member_decrease(json_data, session): # session.send_text_msg(f'机器人回复啦 group_member_decrease') pass @bot_app.on_request("friend_verify") def friend_verify(json_data, session): # session.agree_friend_verify() pass ``` > 装饰器和参数session和之前非文字的on_command等的一样 > json_data 为传过来的json数据,其中包含比如加群人的信息(group_member_add中),dict类型,具体见api列表 ## on_notice > 该装饰器主要处理接到转账、收款、好友变动、系统信息 ``` def register(bot_app): @bot_app.on_notice("received_transfer") def received_transfer(json_data, session): # money = session.info['money'] # 钱数,比如0.01 # session.accept_transfer() pass @bot_app.on_notice("scan_cash_money") def scan_cash_money(json_data, session): pass @bot_app.on_notice("contacts_change") def contacts_change(json_data, session): pass @bot_app.on_notice("sys_msg") def sys_msg(json_data, session): pass ``` > 装饰器和参数和on_request中的一样 ## 机器人启动等事件 > 这个请直接在`bot.plugins.fix._on_env`中编辑即可