结合简聊的报警通知函数
程序员文章站
2024-04-04 13:48:29
...
当系统出现问题,或者想要报警或是通知的时候,可以通过该函数,向简聊的自定义hook发出请求,然后就可以在手机上面接收到报警。
当系统出现问题,或者想要报警或是通知的时候,可以通过该函数,向简聊的自定义hook发出请求,然后就可以在手机上面接收到报警。
简聊地址:https://jianliao.com
注册登录后,可以看到一个聚合服务 ,在里面找到自定义,Incoming Webhook,然后把里面的key替换到代码中的位置即可。
![结合简聊的报警通知函数 结合简聊的报警通知函数](/default/index/img?u=L1VwbG9hZHMvZWRpdG9yLzIwMTUtMDgtMDUvNTVjMTgxODNhZGI2NS5qcGc=)
thinkphp的实现函数,可以放在common/function.php里面,也可以随意,或者封装成class。
![结合简聊的报警通知函数 结合简聊的报警通知函数](/default/index/img?u=L1VwbG9hZHMvZWRpdG9yLzIwMTUtMDgtMDUvNTVjMTgwNDAzYjlkOS5qcGc=)
当系统出现问题,或者想要报警或是通知的时候,可以通过该函数,向简聊的自定义hook发出请求,然后就可以在手机上面接收到报警。
简聊地址:https://jianliao.com
注册登录后,可以看到一个聚合服务 ,在里面找到自定义,Incoming Webhook,然后把里面的key替换到代码中的位置即可。
thinkphp的实现函数,可以放在common/function.php里面,也可以随意,或者封装成class。
/**
* 监控上报
* @param [type] $title [标题]
* @param [type] $text [详细内容]
* @param string $redirectUrl [跳转地址]
* @param string $imageUrl [图片地址]
* @param integer $time [过期时间,就是当积累的上报数据达到指定时间后,再发送报警,比如超过10分钟发送一次]
* @param boolean $now [是否立即发送]
* @return [type] [发送完成的true 或是false]
*/
function gtReport($title, $text, $redirectUrl = '', $imageUrl = '', $time = 600,$now = false) {
$content = S('report_' . $title);
if (empty($content)) {
//如果为首次报错,则记录首次过期时间
S('report_' . $title . '_expire', time());
}
$expire = S('report_' . $title . '_expire');
if (empty($content) || ($expire + $time) > time() || $now == false) {
//如果数量为空,或是首次过期时间没有超过10分钟,则进行累加
S('report_' . $title, $content . "\n" . $text . "[" . date('Y-m-d H:i:s') . "]");
return false;
}
S('report_' . $title, 0);
$data['authorName'] = '我的数据上报';
$data['title'] = $title;
$data['text'] = $content;
$data['redirectUrl'] = $redirectUrl;
$data['imageUrl'] = $imageUrl;
$query = array();
foreach ($data as $key => $value) {
if ($value === '') {
continue;
}
$query[] = $key . '=' . $value;
}
$query = implode('&', $query);
$url = 'https://talk.ai/v1/services/webhook/来自简报的key';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
$result = curl_exec($ch);
\Think\Log::write("错误上报\t" . $query, 'WARN');
return true;
}
收到通知的效果如下:AD:真正免费,域名+虚机+企业邮箱=0元
上一篇: PHP 删除内容中的链接地址