企业微信实现消息通知功能

一:获取消息通知所需参数: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/c...

根据上面的接口可以获取到access_token

2:根据获取的access_token实现消息通知

消息通知接口地址:https://qyapi.weixin.qq.com/c...

请求参数:

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;
}

如上就可以实现消息通知功能,上面介绍的是文本类型的消息通知,其他类型的消息通知可以参考企业微信文档实现

你可能感兴趣的:(消息,微信)