网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- 其中的自定义推送消息,在机器人配置说明栏目里面有详细说明,但是需要自己开发
三、机器人信息推送
- 当前自定义机器人
支持文本(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>"
]
];
![img](https://img-blog.csdnimg.cn/img_convert/d30618f559bd7accfb7fc804ade2b9c3.png)
![img](https://img-blog.csdnimg.cn/img_convert/7f63290ecdd539352334adedf0567982.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
5ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**