前言
这阵子除了写PHP, 还在写C#的socket服务器端, 第一次写软件, 所以bug总是特别的多. 放在远程服务器上, 说不准什么时候软件就出异常了. 于是在PHP端写了个监测程序, 如果服务器端已经崩溃, 则通过微信公众号和钉钉的群机器人给我发信息.
这篇文章讲的就是通过钉钉群机器人的webhook自定义通知来及时发送预警信息的, 使用的语言是PHP
流程
1. 在PC版本的钉钉中, 找到机器人的webhook地址
2. 在composer中下载"guzzlehttp/guzzle"插件, 用来发送GET/POST请求, 此处过程省略.(composer系列文章正在编写中, 稍后会以专栏的形式着重讲解)
3. 引入下面的函数, 调用即可
/**
* 发送信息至钉钉群机器人
* @param string $webhook 机器人的webhook地址
* @param string $msg 要发送的信息
*/
function sendMsgToDingTalk($webhook, $msg){
$client = new \GuzzleHttp\Client();
$data = [
'msgtype' => 'text',
'text' => [
'content' => $msg,
]
];
$res = $client->post($webhook,[
'headers' => [
'content-type' => 'application/json'
],
'body' => json_encode($data),
]);
// 加echo为了便于调试
echo $res;
}
4. 此处有坑! composer中的"guzzlehttp/guzzle" 在PHP 7.1的版本里有问题, 建议升级PHP版本到7.2 或 偷懒退回版本到5.6.
结语
1. 消息预警 这东西, 多几个渠道还是很好的. 我这个项目里就使用了微信公众号和钉钉群机器人两种渠道同时发送预警信息.
2. composer是个好东西, 我之前也只是简单的用了whoops和monolog两个插件. 可没想到细研究下来, 竟然还有那么多好用又节省时间的插件和项目. 顿时觉得我以前自己写的很多东西, 都是在做无用功.
3. 拥抱变化, 探索新知识. 这才是一个码农的翻身捷径, 不说了, 我先去翻身了.
4. 本文借鉴了https://juejin.im/post/5d0c3c705188250db037a742这篇文章, 感谢网络上的大佬们, 给我们带来许多的经验和知识.
5. 文末来一波广告, 老刘的个人站 http://laoliu.pro