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