目录
一、 创建群机器人
二、机器人配置
三、机器人信息推送
四、线上使用
五、推送效果
一、 创建群机器人
- 先选择一个企业微信群
- 右键添加机器人
- 完善机器人的头像、名称即可
二、机器人配置
- 查看生成的机器人webhook地址
- 点击地址,里面可以查看文档和一些简单的配置
- 自定义配置可以配置IP白名单,以及推送消息示例
三、机器人信息推送
- 当前自定义机器人 支持文本(text)、markdown(markdown)、图片(image)、图文(news)四种消息类型
- 我们只要根据它的文档说明,将指定类型的消息发送给 webhook 地址即可实现消息推送
// 文本消息类型
{"msgtype": "text","text": {"content": "广州今日天气:29度,大部分多云,降雨概率:60%","mentioned_list":["wangqing","@all"],"mentioned_mobile_list":["13800001111","@all"]}
}// markdown消息类型
{"msgtype": "markdown","markdown": {"content": "实时新增用户反馈<font color="warning">132例</font>,请相关同事注意。\n>类型:<font color="comment">用户反馈</font>>普通用户反馈:<font color="comment">117例</font>>VIP用户反馈:<font color="comment">15例</font>"}
}// 图片消息类型
{"msgtype": "image","image": {"base64": "DATA","md5": "MD5"}
}// 图文消息类型
{"msgtype": "news","news": {"articles" : [{"title" : "中秋节礼品领取","description" : "今年中秋节公司有豪礼相送","url" : "www.qq.com","picurl" : "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"}]}
}
四、线上使用
- 一般我们自己接入的程序中选择makedown消息推送和普通消息推送较多
- 以下代码仅分享普通消息推送,作案例展示,具体请根据自己需求接入
<?php
/*** Created by PhpStorm.* User: autofelix* Date: 2021/5/18* Time: 22:00* Desc: 机器人实例.*/class robot
{//你的机器人webhook地址const ROBOT_URL = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';//日志上报public function report($content, $list = ['@all']){$data = ['msgtype' => 'text','text' => ['content' => $content,'mentioned_list' => $list,'mentioned_mobile_list' => $list]];$result = $this->post_curl(self::ROBOT_URL, json_encode($data));$result = json_decode($result, true);if ($result['errcode'] == 0) {//上报成功之后的逻辑echo '上报结果:' . $result['errmsg'];} else {//上报失败之后的逻辑echo '上报错误:' . $result['errmsg'];}}//请求protected function post_curl($url, $post_data, $header = [], $timeout = 5){$ch = curl_init(); //初始化curlcurl_setopt($ch, CURLOPT_URL, $url); //抓取指定网页if ($header) {curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //设置header}curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设置不输出直接返回字符串curl_setopt($ch, CURLOPT_POST, 1); //post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hostscurl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);$result = curl_exec($ch); //运行curlcurl_close($ch);return $result;}
}(new robot())->report('上报错误日志');