php封装实现钉钉机器人报警接口的示例代码

这篇文章主要介绍了php封装实现钉钉机器人报警接口的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

本文主要讲述的是如何通过签名方式实现钉钉机器人报警的功能:

1、关于签名的生成:

  1. /**
  2. * 签名实现
  3. */
  4. list($s1, $s2) = explode(' ', microtime());
  5. $timestamp = (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) * 1000);
  6. $secret = '****';
  7. $data = $timestamp . "\n" . $secret;
  8. $signStr = base64_encode(hash_hmac('sha256', $data, $secret,true));
  9. $signStr = utf8_encode(urlencode($signStr));
  10. $webhook = 'https://oapi.dingtalk.com/robot/send?access_token=****';
  11. $webhook .= "&timestamp=$timestamp&sign=$signStr";

2:使用guzzle请求接口,发送钉钉消息

  1. /**
  2. * 发送钉钉报警
  3. */
  4. $guzzleClent = new \GuzzleHttp\Client();
  5. $data = [
  6. 'msgtype' => 'text',
  7. 'text' => [
  8. 'content' => $msg,
  9. ]
  10. ];
  11. $res = $guzzleClent->request('POST', $webhook,[
  12. 'headers' => [
  13. 'content-type' => 'application/json'
  14. ],
  15. 'body' => json_encode($data),
  16. ]);
  17. $res = json_decode($res->getBody());
  18. var_dump($res);