您现在的位置是:网站首页>>微信>>企业微信

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

发布时间:2020-07-15 14:37:20作者:wangjian浏览量:404点赞量:0

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

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

0 +1