微信机器人~~微信hook

拉取镜像

docker pull dannicool/docker-wechatbot-webhook

创建我们的容器:

docker run \
-d \
--name wxBotWebhook \
-p 3001:3001 \
-e RECVD_MSG_API=http://192.168.31.100:8080/api \
-e DISABLE_AUTO_LOGIN=true
-e LOGIN_API_TOKEN=abc
-v ~/wxBot_logs:/app/log \
dannicool/docker-wechatbot-webhook

RECVD_MSG_API是接收消息webhook的地址,post请求

DISABLE_AUTO_LOGIN:服务重启时自动登录微信号。

LOGIN_API_TOKEN:自定义登录 API token。

登录机器人账号 服务部署成功时,通过访问:token是刚才设置的

https://localhost:3001/login?token=abc  

webhook接收消息

在容器部署的时候我们指定过一个环境变量RECVD_MSG_API。当机器人收到消息时会将消息主体以POST形式推送到该接口上。

  {
    # 消息类型
    "type": "text",
    # 消息内容
    "content": "你好",
    # 消息发送方的数据
    "source": "{}",
    # 是否被艾特
    "isMentioned": "0",
    # 是否自己发送给自己的消息
    "isMsgFromSelf": "0",
    # 被遗弃的参数
    "isSystemEvent": "0"
  }

消息类型对应的有:

功能类型:文字消息 text、链接卡片 urlLink、图片 视频 附件 语音 file、添加好友邀请 friendship。

系统类型:登录 system_event_login、登出 system_event_logout、异常报错 system_event_error、 快捷回复后消息推送状态通知 system_event_push_notify。

其他类型:未实现的消息类型 unknown。

处理收到的消息

 {
    "success": true,
    "data": {
      "type": "text",
      "content": "hello world!"
    }
  }

发送文本消息

我们通过向API接口推送指定的消息结构即可完成消息的发送。

 curl --location --request POST 'http://localhost:3001/webhook/msg/v2?token=[LOGIN_API_TOKEN]' \
  --header 'Content-Type: application/json' \
  --data-raw '{
      "to": "好友昵称",
       "data": { 
          "type": "text" , 
          "content": "你好👋" 
        }
  }'

参数解析:

to:消息接收方,传入String 默认是发给昵称(群名同理), 传入Object 结构支持发给备注过的人,比如:{alias: '备注名'},群名不支持备注名。

type:消息类型, 字段留空或者为text解析为纯文本。也可以填写fileUrl表示发送此链接的文件给好友。

content:消息内容,如果希望发多个Url并解析,type 指定为 fileUrl 同时,content 里填 url 以英文逗号分隔。

isRoom:是否发给群消息(true/false),这个参数决定了找人的时候找的是群还是人(默认发送给人),因为昵称其实和群名相同在技术处理上。

git地址 https://github.com/danni-cool/wechatbot-webhook

posted @ 2024-04-28 14:54  朝阳1  阅读(10)  评论(0编辑  收藏  举报