首页 > 其他分享 >机器人回调接口完善

机器人回调接口完善

时间:2024-05-26 19:32:16浏览次数:23  
标签:None 机器人 昵称 接口 fromType str wxid 回调 Optional

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。

免责声明:该工具仅供学习使用,禁止使用该工具从事违法活动,否则永久拉黑封禁账号!!!本人不对任何工具的使用负责!!!

mxxWechatBot回调接口配置

痛点

  • 当有新成员进群时,如何通知到我们业务端,且进行进一步的操作,例如:进群欢迎、发送群资料等等,如何实现?
  • 当有成员退群时,如何通知到我们业务端,进行群内通知或者仅在管路员内部群中通知,例如:客户群中,眼见客户一天比一天少,但是无法及时发现?
  • 当有实时消息时,如何及时在业务平台中发现是哪个群的哪个成员发送的?
  • 当有成员撤回消息是,好不好奇群友撤回的什么消息?
  • 当有成员给你转账时,不在电脑面前如何自动收款?
  • 如何知道现在有多少条未读消息?

以上这些场景,在我们实际中经常会遇到,介此,今天,mxxWechatBot增加回调接口的功能,针对以上痛点,提供强有力的解决方案。

目前支持的场景

  • 收到消息
  • 撤回消息
  • 注入成功
  • 登录成功
  • 进群
  • 退群
  • 通过好友申请
  • 转账退款
  • 转账收款
  • …其他的还在开发中

效果

我这边只展示了群成员退群后的效果,大家可以看到,当有成员退群时,会自动触发回调接口,同时,会将该成员的群信息和群成员信息发送到我们业务平台,方便我们后续处理。

如何设置回调接口?

首先,我们需要打开服务端,找到【基础配置】菜单,找到【基本功能设置】中的【回调接口配置】,如下图所示:

接下来我们进行回调接口配置:

首先,点击【新增】

其次,按照表单信息填写,接口类型中可以选择:退群、进群、通过好友申请、转账成功、转账退款、注入成功、登录成功;接口地址中填写在自己的接口地址(可以参考这里);适用群/好友id:填写群聊id或者好友id,然后点击保存。

【注意】:

自2024年5月26日19:01:54后,回调接口不再需要填写适用群或者还有了,所有的群或者好友的回调,统一都去接口中,用户可以自己处理。

☆☆☆温馨提示:
在写自定义接口时,需要注意:

  1. 机器人客户端会调用你的自定义接口
  2. 调用请求方式为POST
  3. 传入参数为JSON格式
  4. 传参数据如下:
{
  "wxid": "wxid_ds454545", // wxid
  "wxNum": "wxNum_123456", // 微信号
  "nick": "mxxWechatbot", // 昵称
  "device": "iPhone", // 登录设备
  "phone": "+1506666666", // 电话
  "avatarUrl": "http://example.com/avatar.jpg", // 头像
  "country": "中国", // 国家
  "province": "山西", // 省
  "city": "运城", // 城市
  "email": "[email protected]", // 邮箱
  "qq": "123456789", // QQ
  "timeStamp": 1609459200, // 时间戳
  "fromType": 1, // 来源类型:1|私聊 2|群聊 3|公众号
  "msgType": 1, //# 消息类型:1|文本 3|图片 34|语音 42|名片 43|视频 47|动态表情  48|地理位置 49|分享链接或附件 2001|红包 2002|小程序  2003|群邀请 10000|系统消息  60 撤回消息  61 登录成功  62退群 63 进群 64通过好友申请 65注入成功 66转账
  "msgSource": 0, // 消息来源:0|别人发送 1|自己手机发送
  "fromWxid": "wxid_sender", // fromType=1时为好友wxid,fromType=2时为群wxid,fromType=3时公众号wxid
  "fromNick": "sender_nickname", // fromType=1时为好友wxid,fromType=2时为群昵称,fromType=3时公众号昵称
  "finalFromWxid": "wxid_group_speaker", // 仅fromType=2时有效,为群内发言人wxid
  "finalFromNick": "group_speaker_nickname", // 仅fromType=2时有效,为群内发言人昵称
  "atWxidList": ["wxid_mentioned1", "wxid_mentioned2"], // 仅fromType=2,且msgSource=0时有效,为消息中艾特人wxid列表
  "silence": 0, // 仅fromType=2时有效,0
  "membercount": 100, // 仅fromType=2时有效,群成员数量
  "signature": "This is a signature", // 签名
  "msg": "Hello, this is a sample message", // 消息内容
  "sex": 1 // 性别
}

序号字段名类型说明
1wxidstring微信ID
2wxNumstring微信号
3nickstring昵称
4devicestring登录设备
5phonestring电话
6avatarUrlstring头像URL
7countrystring国家
8provincestring
9citystring城市
10emailstring邮箱
11qqstringQQ号
12timeStampint时间戳
13fromTypeint来源类型:1私聊,2群聊,3公众号
14msgTypeint消息类型:1文本,3图片,34语音,42名片,43视频,47动态表情,48地理位置,49分享链接或附件,2001红包,2002小程序,2003群邀请,10000系统消息,60撤回消息,61登录成功,62退群,63进群,64通过好友申请,65注入成功,66转账
15msgSourceint消息来源:0别人发送,1自己手机发送
16fromWxidstringfromType=1时为好友wxid,fromType=2时为群wxid,fromType=3时公众号wxid
17fromNickstringfromType=1时为好友昵称,fromType=2时为群昵称,fromType=3时公众号昵称
18finalFromWxidstring仅fromType=2时有效,为群内发言人wxid
19finalFromNickstring仅fromType=2时有效,为群内发言人昵称
20atWxidListlist仅fromType=2,且msgSource=0时有效,为消息中艾特人wxid列表
21silenceint仅fromType=2时有效,0
22membercountint仅fromType=2时有效,群成员数量
23signaturestring签名
24msgstring消息内容
25sexstring性别

详情原理可以参考这里

当我们保存成功之后,记得需要同步一下配置到客户端,点击【同步】按钮即可。

最后检查一下,信息是否同步成功。我们打开机器人客户端,然后找到路径:C:\Users\用户\Documents\mxxWechatBot-conf,点击打开mxxWechatBotConf.ini文件,查看是否有[huidiao]这个节点。

如果找到,那就证明配置的没有问题,一切准备就绪。快去试试你的回调接口是否成功运行~

附回调接口示例

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Optional, List
from fastapi import APIRouter

app = FastAPI()

huidiao_router = APIRouter()

# 消息实体
class CallBackDataEntity(BaseModel):
    wxid: Optional[str] = None  # wxid
    wxNum: Optional[str] = None  # 微信号
    nick: Optional[str] = None  # 昵称
    device: Optional[str] = None  # 登录设备
    phone: Optional[str] = None  # 电话
    avatarUrl: Optional[str] = None  # 头像
    country: Optional[str] = None  # 国家
    province: Optional[str] = None  # 省
    city: Optional[str] = None  # 城市
    email: Optional[str] = None  # 邮箱
    qq: Optional[str] = None  # QQ
    timeStamp: Optional[int] = None # 时间戳
    fromType: Optional[int] = None # 来源类型:1|私聊 2|群聊 3|公众号
    # 消息类型:1|文本 3|图片 34|语音 42|名片 43|视频 47|动态表情
    # 48|地理位置 49|分享链接或附件 2001|红包 2002|小程序
    # 2003|群邀请 10000|系统消息
    # 60 撤回消息  61 登录成功  62退群 63 进群 64通过好友申请 65注入成功 66转账
    msgType: Optional[int] = None
    msgSource: Optional[int] = None # 消息来源:0|别人发送 1|自己手机发送
    fromWxid: Optional[str] = None # fromType=1时为好友wxid,fromType=2时为群wxid,fromType=3时公众号wxid
    fromNick: Optional[str] = None # fromType=1时为好友wxid,fromType=2时为群昵称,fromType=3时公众号昵称
    finalFromWxid: Optional[str] = None  # 仅fromType=2时有效,为群内发言人wxid
    finalFromNick: Optional[str] = None  # 仅fromType=2时有效,为群内发言人昵称
    atWxidList: Optional[list] = None  # 仅fromType=2,且msgSource=0时有效,为消息中艾特人wxid列表
    silence: Optional[int] = None # 仅fromType=2时有效,0
    membercount: Optional[int]= None  # 仅fromType=2时有效,群成员数量
    signature: Optional[str] = None
    # 消息内容
    msg: Optional[str]= None
    # 性别
    sex: Optional[str]= None

    # 创建get方法
    def get(self, param):
        return getattr(self, param)


# 回调接口信息处理ds
@huidiao_router.post("/receive_message_callback")
async def receive_message(data: CallBackDataEntity):
    # 将收到的消息转换成json
    data = data.dict()
    print(f"接收到了回调消息,内容是:{data}")
    # 这里可以添加你的业务逻辑
    return {"message": "success"}


标签:None,机器人,昵称,接口,fromType,str,wxid,回调,Optional
From: https://blog.csdn.net/qq_34137397/article/details/139219111

相关文章

  • X2Modbus网关GetUser接口存在信息泄漏漏洞
    漏洞描述该漏洞的存在是由于'GetUser'接口在处理SOAP请求时,缺乏对请求的充分验证和授权检查,任何人都可以通过发送特定的SOAP请求,获取系统中存在的用户信息,攻击者可以通过发送包含合法用户凭据的SOAP请求,绕过身份验证机制,直接获取用户数据。fofaserver="SunFull-Webs"POCPOST......
  • 铭飞CMS-search接口存在sql注入漏洞
    漏洞描述铭飞CMS是一款开源的内容管理系统,SQL注入漏洞存在于铭飞CMS的search接口处,当用户输入的内容未被充分过滤或转义时,攻击者可以在url中构造嵌入恶意的SQL语句,从而实现对数据库的操控fofabody="铭飞MCMS"||body="/mdiy/formData/save.do"||body="static/plugins/ms/1.0......
  • java —— 封装、继承、接口和多态
    一、封装封装是将数据和操作这些数据的方法整合成一个类。在这个类中,用private修饰符将某些数据隐藏起来,只通过特定的方法实现这些数据的访问和修改,以此实现数据的完整和安全性。封装的步骤:二、继承 继承是指把子类共有的某些属性或方法抽离出来,编写为父类,这样多个子类......
  • 测试进程A是否可以执行关联的响应接口
    设计两个程序,要求进程A中自定义信号SIGUSR1的响应接口,要求进程B每隔一段时间向进程A就发送SIGUSR1信号,测试进程A是否可以执行关联的响应接口。/*******************************************************************************************************@filename: :pro......
  • 亲测有效,通过接口实现完美身份证号有效性验证+身份证与姓名匹配查询身份实名认证接口(
    最近发现一个限时认证的接口分享给大家,有需要的拿去试下吧.附上部分密钥f478186edba9854f205a130aa888733d227a8f82f98d84b9【剩余约125450次,无时间限制】b6131281611f6e1fc86c8662f549bdd683a68517203ba312【剩余约1300次,无时段限制】01e21c3405f115deb5d7820d55d19e8b......
  • 脑机接口习题
    9-12章习题填空题EEG电极分为主动电极和被动电极,其中被动电极直接与放大器连接,主动电极包含一个1~10倍的前置放大。除抗混淆滤波器,放大系统也包含由电阻器、电容器构成的模拟滤波器,把信号频率内容限制在一个特定的频率范围,这些模拟滤波器称为RC滤波器,RC滤波器分为高......
  • 接口设计的18条
    接口设计的18条军规 前言 之前写过一篇文章《表设计的18条军规》,发表之前,在全网广受好评。 今天延续设计的话题,给大家总结了接口设计的18条军规,希望对你会有所帮助。  1.签名 为了防止API接口中的数据被篡改,很多时候我们需要对API接口做签名。 接口请求方将......
  • java实现一个动态监控系统,监控接口请求超时的趋势
    目录整体思路案例实现1.数据收集2.数据聚合3.趋势分析4.异常检测5.异常处理定时任务整体思路理想情况下,你可以实现一个简单的动态监控算法来检测渠道请求的响应时间趋势,并在发现频繁超时的情况下进行处理。以下是一个可能的算法框架:数据收集:首先,你需要收集......
  • Java SE入门及基础(54)& 函数式接口
    目录1.什么是函数式接口函数式接口示例示例2.函数式编程示例3.Lambda表达式延迟执行应用场景示例4.Consumer接口解释说明示例5.BiConsumer接口解释说明示例6.Predicate接口解释说明示例练习7.Function接口解释说明示例练习1.什么是函数......
  • 如何实现机器人轨迹无碰撞-无约束的优化问题
    参考上一篇博客,这里给出一个具体案例讲解。Q&A通过一个二维的例子讲解我通过一个简单的二维平面运动规划问题来说明本文方法是如何将有约束问题转化为无约束优化的。考虑一个质点在平面上从起点p......