一、创建机器人
选择群
►右键
►管理聊天信息
►添加群机器人
- 完善机器人基本信息,包括头像、名称等
二、机器人配置说明
- 创建好的机器人都有一个唯一的
webhook
地址 - 一定要保护好自己的
webhook
地址,如果一旦泄露,可以通过移除机器人,再重新创建一个去处理 - 点击
webhook
地址,可以看到文档说明,也可以进行普通的推送消息配置 - 其中的自定义推送消息,在机器人配置说明栏目里面有详细说明,但是需要自己开发
三、机器人信息推送
- 当前自定义机器人
支持文本(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" } ] } }
四、错误预警推送
- 这里以
Thinkphp
框架为例,将错误预警整合到项目中,实现实时错误推送 - 首先在
config
配置文件添加错误处理类,执行哪个文件来处理错误 - 配置完成后,项目只要遇到错误,程序都会走指定的文件去处理
- 然后在该文件中完善错误推送预警逻辑即可,一般错误预警都是用
markdown
类型进行推送
'exception_handle' => '\\app\\common\\exception\\WorkWx',
namespaceapp\common\exception; useException; useitbdw\Ip\IpLocation; useapp\common\util\Helper; usethink\exception\Handle; usethink\exception\HttpException; usethink\exception\ValidateException; classWorkWxextendsHandle{ constWEBHOOK='填写你自己的webhook地址'; publicfunctionrender(Exception$e) { $clientIP=Helper::getClientIp(); $clientAddress=IpLocation::getLocation($clientIP); unset($clientAddress['ip']); $ipAddress=implode('-', $clientAddress); // 参数验证错误if ($einstanceofValidateException) { $data= [ 'msgtype'=>'markdown', 'markdown'=> [ 'content'=>"来自 **<font color=\"info\">天眼</font>** 的温馨提醒,请相关同事注意。>**描述:** <font color=\"comment\">参数验证错误</font>>**端IP:** <font color=\"comment\">{$clientIP}</font>>**地址:** <font color=\"comment\">{$ipAddress}</font>>**状态:** <font color=\"comment\">{$e->getCode()}</font>>**行数:** <font color=\"comment\">{$e->getLine()}</font>>**文件:** <font color=\"red\">{$e->getFile()}</font>>**提示:** <font color=\"warning\">{$e->getError()}</font>>**信息:** <font color=\"warning\">{$e->getMessage()}</font>" ] ]; returnHelper::postCurl(self::WEBHOOK, json_encode($data)); } // 请求异常if ($einstanceofHttpException) { $data= [ 'msgtype'=>'markdown', 'markdown'=> [ 'content'=>"来自 **<font color=\"info\">天眼</font>** 的温馨提醒,请相关同事注意。>**描述:** <font color=\"comment\">请求异常</font>>**端IP:** <font color=\"comment\">{$clientIP}</font>>**地址:** <font color=\"comment\">{$ipAddress}</font>>**状态:** <font color=\"comment\">{$e->getCode()}</font>>**行数:** <font color=\"comment\">{$e->getLine()}</font>>**文件:** <font color=\"red\">{$e->getFile()}</font>>**信息:** <font color=\"warning\">{$e->getMessage()}</font>" ] ]; returnHelper::postCurl(self::WEBHOOK, json_encode($data)); } // 其他错误交给系统处理returnparent::render($e); } }