之前发送钉钉群消息通知,设置的安全策略都是“自定义关键字”,而且貌似钉钉接口也并不 care 发送的内容中是否包含关键字的,一直都运行的好好的,过了一个周末,竟然失效了,消息发不出去了。于是又重新阅读了一遍钉钉接口文档,写了个带签名的方法如下,为了方面拿去即用就放在一个 function 中了。
/**
* 发送带签名的钉钉消息通知
* 钉钉接口文档地址 https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
* @param $access_token , 机器人的 Webhook 地址后面的 access_token
* @param $secret , 密钥,机器人安全设置页面,加签一栏下面显示的 SEC 开头的字符串
* @param $content ,需要发送的 string
*/
public static function curlHttpPOSTToDingTalk($access_token, $secret, $content)
{
$url = 'https://oapi.dingtalk.com/robot/send?';
$body = array(
"msgtype" => "text",
"text" => array("content" => $content),
"at" => array(
"isAtAll" => true
)
);
$timeStamp = floor(microtime(true) * 1000);//毫秒时间戳
$stringToSign = $timeStamp . "\n" . $se