php通过签名方式实现钉钉机器人报警的方法及代码
来源:绵阳动力网络公司  时间:2020-08-10  阅读:10

在上半年的疫情期间,有很多单位使用了网上办公,而使用的APP中最多就是企业微信和钉钉。随着疫情的慢慢恢复,大家也从线上办公转为办公室办公,但通过前期对办公类APP使用发现对工作效率提供很有帮助,所以很多单位是在继续使用这类办公APP。绵阳动力网络就为大家来介绍php通过签名方式实现钉钉机器人报警的方法及代码。

今天我们主要讲钉钉,对于运维告警来说,除了传统的邮件告警之外,短信告警、企业微信告警、钉钉机器人告警等也是首选考虑。

首先是签名的生成:

/**
 * 签名实现
 */
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 .= "&timestamp=$timestamp&sign=$signStr";

接着就是使用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);

好了,以上内容就是今天要为大家介绍的php通过签名方式实现钉钉机器人报警的方法及代码全部内容,希望对你的亚搏娱乐网页版登录建设有所帮助,记得收藏哦。