大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。
免责声明:该工具仅供学习使用,禁止使用该工具从事违法活动,否则永久拉黑封禁账号!!!本人不对任何工具的使用负责!!!
mxxWechatBot回调接口配置
痛点
- 当有新成员进群时,如何通知到我们业务端,且进行进一步的操作,例如:进群欢迎、发送群资料等等,如何实现?
- 当有成员退群时,如何通知到我们业务端,进行群内通知或者仅在管路员内部群中通知,例如:客户群中,眼见客户一天比一天少,但是无法及时发现?
- 当有实时消息时,如何及时在业务平台中发现是哪个群的哪个成员发送的?
- 当有成员撤回消息是,好不好奇群友撤回的什么消息?
- 当有成员给你转账时,不在电脑面前如何自动收款?
- 如何知道现在有多少条未读消息?
- …
以上这些场景,在我们实际中经常会遇到,介此,今天,mxxWechatBot
增加回调接口的功能,针对以上痛点,提供强有力的解决方案。
目前支持的场景
- 收到消息
- 撤回消息
- 注入成功
- 登录成功
- 进群
- 退群
- 通过好友申请
- 转账退款
- 转账收款
- …其他的还在开发中
效果
我这边只展示了群成员退群后的效果,大家可以看到,当有成员退群时,会自动触发回调接口,同时,会将该成员的群信息和群成员信息发送到我们业务平台,方便我们后续处理。
如何设置回调接口?
首先,我们需要打开服务端,找到【基础配置】菜单,找到【基本功能设置】中的【回调接口配置】,如下图所示:
接下来我们进行回调接口配置:
首先,点击【新增】
其次,按照表单信息填写,接口类型中可以选择:退群、进群、通过好友申请、转账成功、转账退款、注入成功、登录成功;接口地址中填写在自己的接口地址(可以参考这里);适用群/好友id:填写群聊id或者好友id,然后点击保存。
【注意】:
自2024年5月26日19:01:54后,回调接口不再需要填写适用群或者还有了,所有的群或者好友的回调,统一都去接口中,用户可以自己处理。
☆☆☆温馨提示:
在写自定义接口时,需要注意:
- 机器人客户端会调用你的自定义接口
- 调用请求方式为
POST
- 传入参数为
JSON
格式 - 传参数据如下:
{
"wxid": "wxid_ds454545", // wxid
"wxNum": "wxNum_123456", // 微信号
"nick": "mxxWechatbot", // 昵称
"device": "iPhone", // 登录设备
"phone": "+1506666666", // 电话
"avatarUrl": "http://example.com/avatar.jpg", // 头像
"country": "中国", // 国家
"province": "山西", // 省
"city": "运城", // 城市
"email": "user@example.com", // 邮箱
"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 // 性别
}
序号 | 字段名 | 类型 | 说明 |
---|---|---|---|
1 | wxid | string | 微信ID |
2 | wxNum | string | 微信号 |
3 | nick | string | 昵称 |
4 | device | string | 登录设备 |
5 | phone | string | 电话 |
6 | avatarUrl | string | 头像URL |
7 | country | string | 国家 |
8 | province | string | 省 |
9 | city | string | 城市 |
10 | string | 邮箱 | |
11 | string | QQ号 | |
12 | timeStamp | int | 时间戳 |
13 | fromType | int | 来源类型:1私聊,2群聊,3公众号 |
14 | msgType | int | 消息类型:1文本,3图片,34语音,42名片,43视频,47动态表情,48地理位置,49分享链接或附件,2001红包,2002小程序,2003群邀请,10000系统消息,60撤回消息,61登录成功,62退群,63进群,64通过好友申请,65注入成功,66转账 |
15 | msgSource | int | 消息来源:0别人发送,1自己手机发送 |
16 | fromWxid | string | fromType=1时为好友wxid,fromType=2时为群wxid,fromType=3时公众号wxid |
17 | fromNick | string | fromType=1时为好友昵称,fromType=2时为群昵称,fromType=3时公众号昵称 |
18 | finalFromWxid | string | 仅fromType=2时有效,为群内发言人wxid |
19 | finalFromNick | string | 仅fromType=2时有效,为群内发言人昵称 |
20 | atWxidList | list | 仅fromType=2,且msgSource=0时有效,为消息中艾特人wxid列表 |
21 | silence | int | 仅fromType=2时有效,0 |
22 | membercount | int | 仅fromType=2时有效,群成员数量 |
23 | signature | string | 签名 |
24 | msg | string | 消息内容 |
25 | sex | string | 性别 |
详情原理可以参考这里
当我们保存成功之后,记得需要同步一下配置到客户端,点击【同步】按钮即可。
最后检查一下,信息是否同步成功。我们打开机器人客户端,然后找到路径: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"}