一、建立機器人
選擇群
► 右鍵
► 管理聊天資訊
► 新增群機器人
- 完善機器人基本資訊,包括頭像、名稱等
二、機器人配置說明
- 建立好的機器人都有一個唯一的
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',
<?php
namespace app\common\exception;
use Exception;
use itbdw\Ip\IpLocation;
use app\common\util\Helper;
use think\exception\Handle;
use think\exception\HttpException;
use think\exception\ValidateException;
class WorkWx extends Handle
{
const WEBHOOK = '填寫你自己的webhook地址';
public function render(Exception $e)
{
$clientIP = Helper::getClientIp();
$clientAddress = IpLocation::getLocation($clientIP);
unset($clientAddress['ip']);
$ipAddress = implode('-', $clientAddress);
// 引數驗證錯誤
if ($e instanceof ValidateException) {
$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>"
]
];
return Helper::postCurl(self::WEBHOOK, json_encode($data));
}
// 請求異常
if ($e instanceof HttpException) {
$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>"
]
];
return Helper::postCurl(self::WEBHOOK, json_encode($data));
}
// 其他錯誤交給系統處理
return parent::render($e);
}
}