我最初的想法是搞一个微信机器人,但是这个微信机器人可以提供一个基建的功能,通过webhook,让用户可以随意的定制功能。
群webhook简介
通过设置以后,群内的聊天内容由群主你自己来控制。
核心思路:群成员与笔记卡片聊天,那么聊天的内容会以post的方式发送到你提供的url中,处理完毕以后返回即可。
具体实现
为了实现此功能,你需要搭建自己的服务器并部署一个 API。通过与微信聊天,你可以触发服务器上的一些操作。
如果需要微信返回执行的结果,在30秒之内可以通过message返回; 如果无法及时响应,可以使用 发送消息URL 功能返回结果。
Webhook 设置
aaaaa 为token内容,需要添加笔记卡片,然后发送 我管理的群 获取
通过以下方式设置你的 Webhook 地址:
群webhook:aaaaa=https://nodered.glwsq.cn/webhook_test
若要清空 Webhook 地址,可以使用:
群webhook:aaaaa=
数据传输
每次对话时,系统将把本地对话内容发送到指定的 Webhook 地址,使用 POST 请求,内容格式为 JSON:
{
"content": "内容",
"createtime": 1727330479,
"from_user": "用户wxid",
"room_name": "群wxid",
"chatroomMemberInfo": "群详细信息"
}
期待的返回值
你的 API 应该返回以下 JSON 格式的数据:
{
"continue": false,
"message": "处理成功"
}
- 如果
continue
为false
,则笔记卡片将停止处理后续的对话流程。 - 如果
message
字段存在,其内容将会在微信中显示。
错误处理
如果请求失败或超时,系统将执行笔记卡片的默认行为。
参考代码
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/webhook_test', methods=['POST'])
def webhook_test():
data = request.get_json()
# 处理接收到的数据
content = data.get('content', '')
from_user = data.get('from_user', '')
# 这里可以添加更多的处理逻辑
# 返回结果
response = {
"continue": False,
"message": "处理成功"
}
return jsonify(response)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)