本文主要讲述的是如何通过签名方式实现钉钉机器人报警的功能:
1、关于签名的生成:
/**
* 签名实现
*/
list($s1, $s2) = explode(' ', microtime());
$timestamp = (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) * 1000);
$secret = '****';
$data = $timestamp . "\n" . $secret;
$signStr = base64_encode(hash_hmac('sha256', $data, $secret,true));
$signStr = utf8_encode(urlencode($signStr));
$webhook = 'https://oapi.dingtalk.com/robot/send?access_token=****';
$webhook .= "×tamp=$timestamp&sign=$signStr";
2:使用guzzle请求接口,发送钉钉消息
/**
* 发送钉钉报警
*/
$guzzleClent = new \GuzzleHttp\Client();
$data = [
'msgtype' => 'text',
'text' => [
'content' => $msg,
]
];
$res = $guzzleClent->request('POST', $webhook,[
'headers' => [
'content-type' => 'application/json'
],
'body' => json_encode($data),
]);
$res = json_decode($res->getBody());
var_dump($res);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。