一:获取消息通知所需参数:appid,secret,agentid
登录企业微信:https://work.weixin.qq.com/
企业微信消息通知文档:https://work.weixin.qq.com/api/doc/90000/90135/90236
获取appid,secret,agentid方式可以参考:企业微信实现扫码登录
二:实现消息通知
1:获取access_token
获取access_token接口地址:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=APPID&corpsecret=SECRET
根据上面的接口可以获取到access_token
2:根据获取的access_token实现消息通知
消息通知接口地址:https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN(POST请求方式)
请求参数:
touser:非必填项,指定接收消息的成员,成员ID列表(多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为”@all”,则向该企业应用的全部成员发送
toparty:非必填项,指定接收消息的部门,部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为”@all”时忽略本参数
totag:非必填项,指定接收消息的标签,标签ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为”@all”时忽略本参数
msgtype:必填项,消息类型,此时固定为:text
agentid:必填项,企业应用的id,整型。企业内部开发,可在应用的设置页面查看
text:必填项,content 消息内容,最长不超过2048个字节,超过将截断
safe:非必填项,表示是否是保密消息,0表示否,1表示是,默认0
enable_id_trans:非必填项,表示是否开启id转译,0表示否,1表示是,默认0
enable_duplicate_check:非必填项,表示是否开启重复消息检查,0表示否,1表示是,默认0
duplicate_check_interval:非必填项,表示是否重复消息检查的时间间隔,默认1800s,最大不超过4小时
三:消息通知实现实例:
$corpid = XXX;
$secret = XXX;
//获取access_token
$url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid='.$corpid.'&corpsecret='.$secret;
$token = $this->https_request($url);
$access_token = $token['access_token'];
//消息通知
//配置消息通知参数
$data = [
'touser' => 'XXX',
'msgtype' => 'text',
'agentid' => XXX,
'text' => [
'content' => '测试消息通知'
],
];
$messageUrl = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' . $access_token;
$message = $this->https_request($messageUrl, 'post', $data);
上面的代码使用了https_request方法,方法如下:
/**
* curl
*/
public function https_request($url, $format = 'get', $data = null){
$headerArray =array("Content-type:application/json;","Accept:application/json");
$curl=curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if ($format == 'post') {
curl_setopt($curl, CURLOPT_POST, 1);
if ($data) {
$data = json_encode($data);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);
$data=json_decode(curl_exec($curl), true);
// $data=curl_exec($curl);
curl_close($curl);
return $data;
}
如上就可以实现消息通知功能,上面介绍的是文本类型的消息通知,其他类型的消息通知可以参考企业微信文档实现