如何使用企业微信群机器人
0
无    2021-05-18 10:23:55    6    0
myron

如何使用群机器人

  • 在终端某个群组添加机器人之后,创建者可以在机器人详情页看的该机器人特有的webhookurl。开发者可以按以下说明a向这个地址发起HTTP POST 请求,即可实现给该群组发送消息。下面举个简单的例子.
    假设webhook是:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=893a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa

特别特别要注意:一定要保护好机器人的webhook地址,避免泄漏!不要分享到github、博客等可被公开查阅的地方,否则坏人就可以用你的机器人来发垃圾消息了。

以下是用curl工具往群组推送文本消息的示例(注意要将url替换成你的机器人webhook地址,content必须是utf8编码):

  1. curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=893axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa' \
  2. -H 'Content-Type: application/json' \
  3. -d '
  4. {
  5. "msgtype": "text",
  6. "text": {
  7. "content": "hello world"
  8. }
  9. }'
 
  • 当前自定义机器人支持文本(text)、markdown(markdown)、图片(image)、图文(news)四种消息类型。
  • 机器人的text/markdown类型消息支持在content中使用<@userid>扩展语法来@群成员

消息类型及数据格式

文本类型

  1. {
  2. "msgtype": "text",
  3. "text": {
  4. "content": "广州今日天气:29度,大部分多云,降雨概率:60%",
  5. "mentioned_list":["wangqing","@all"],
  6. "mentioned_mobile_list":["13800001111","@all"]
  7. }
  8. }
 
参数是否必填说明
msgtype消息类型,此时固定为text
content文本内容,最长不超过2048个字节,必须是utf8编码
mentioned_listuserid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人,如果开发者获取不到userid,可以使用mentioned_mobile_list
mentioned_mobile_list手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人
 

markdown类型

  1. {
  2. "msgtype": "markdown",
  3. "markdown": {
  4. "content": "实时新增用户反馈<font color=\"warning\">132例</font>,请相关同事注意。\n
  5. >类型:<font color=\"comment\">用户反馈</font>
  6. >普通用户反馈:<font color=\"comment\">117例</font>
  7. >VIP用户反馈:<font color=\"comment\">15例</font>"
  8. }
  9. }
 
参数是否必填说明
msgtype消息类型,此时固定为markdown
contentmarkdown内容,最长不超过4096个字节,必须是utf8编码
目前支持的markdown语法是如下的子集:
  1. 标题 (支持1至6级标题,注意#与文字中间要有空格) 
    1. # 标题一
    2. ## 标题二
    3. ### 标题三
    4. #### 标题四
    5. ##### 标题五
    6. ###### 标题六
     
  2. 加粗
    1. **bold**
     
  3. 链接
    1. [这是一个链接](http://work.weixin.qq.com/api/doc)
     
  4. 行内代码段(暂不支持跨行)
    1. `code`
     
  5. 引用
    1. > 引用文字
     
  6. 字体颜色(只支持3种内置颜色)
    1. <font color="info">绿色</font>
    2. <font color="comment">灰色</font>
    3. <font color="warning">橙红色</font>
     

    图片类型

    1. {
    2. "msgtype": "image",
    3. "image": {
    4. "base64": "DATA",
    5. "md5": "MD5"
    6. }
    7. }
     
    参数是否必填说明
    msgtype消息类型,此时固定为image
    base64图片内容的base64编码
    md5图片内容(base64编码前)的md5值

    注:图片(base64编码前)最大不能超过2M,支持JPG,PNG格式

     

    图文类型

    1. {
    2. "msgtype": "news",
    3. "news": {
    4. "articles" : [
    5. {
    6. "title" : "中秋节礼品领取",
    7. "description" : "今年中秋节公司有豪礼相送",
    8. "url" : "www.qq.com",
    9. "picurl" : "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"
    10. }
    11. ]
    12. }
    13. }
     
    参数是否必填说明
    msgtype消息类型,此时固定为news
    articles图文消息,一个图文消息支持1到8条图文
    title标题,不超过128个字节,超过会自动截断
    description描述,不超过512个字节,超过会自动截断
    url点击后跳转的链接。
    picurl图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图 1068*455,小图150*150。
     

    文件类型

    1. {
    2. "msgtype": "file",
    3. "file": {
    4. "media_id": "3a8asd892asd8asd"
    5. }
    6. }
     
    参数是否必填说明
    msgtype消息类型,此时固定为file
    media_id文件id,通过下文的文件上传接口获取
     

    消息发送频率限制

    每个机器人发送的消息不能超过20条/分钟。

    文件上传接口

    素材上传得到media_id,该media_id仅三天内有效
    media_id在同一企业内应用之间可以共享

    请求方式:POST(HTTPS)请求地址:https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=KEY&type=TYPE使用multipart/form-data POST上传文件, 文件标识名为”media”参数说明:
    参数必须说明
    key调用接口凭证, 机器人webhookurl中的key参数
    type固定传file
    POST的请求包中,form-data中媒体文件标识,应包含有 filename、filelength、content-type等信息

    filename标识文件展示的名称。比如,使用该media_id发消息时,展示的文件名由该字段控制

    请求示例:
    1. POST https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=893a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa&type=file HTTP/1.1
    2. Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468
    3. Content-Length: 220
    4. ---------------------------acebdf13572468
    5. Content-Disposition: form-data; name="media";filename="wework.txt"; filelength=6
    6. Content-Type: application/octet-stream
    7. mytext
    8. ---------------------------acebdf13572468--
     返回数据:
    1. {
    2. "errcode": 0,
    3. "errmsg": "ok"
    4. "type": "file",
    5. "media_id": "1G6nrLmr5EC3MMb_-zK1dDdzmd0p7cNliYu9V5w7o8K0",
    6. "created_at": "1380000000"
    7. }
     参数说明:
    参数说明
    type媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)
    media_id媒体文件上传后获取的唯一标识,3天内有效
    created_at媒体文件上传时间戳
    上传的文件限制:
    • 要求文件大小在5B~20M之间
0 操作系统
文档导航