企业微信应用文本消息

应用支持推送文本、图片、视频、文件、图文等类型,本篇主要实现发送应用文本消息。

获取企业凭证

发送应用消息首先需要获取调用凭证access_token,此处的凭证为企业凭证,可通过企业授权安装时返回的授权信息中获取access_token;之后可通过获取企业凭证进行刷新。

请求方式

POST

请求地址

https://qyapi.weixin.qq.com/cgi-bin/service/get_corp_token?suite_access_token=SUITE_ACCESS_TOKEN

请求包体

{
    "auth_corpid": "auth_corpid_value",
    "permanent_code": "code_value"
}

方法示例

需要授权企业id和企业永久授权码及三方企业凭证,先写好方法下方发送应用消息时使用。

代码如下:

扫描二维码关注公众号,回复: 17284086 查看本文章
/**
 * 获取授权企业access_token
 * @param $corpid
 * @param $permanent_code
 * @return array|mixed
 */
public function getCompanyToken($corpid, $permanent_code)
{
    $access_token = '三方企业凭证';
    $url = 'https://qyapi.weixin.qq.com/cgi-bin/service/get_corp_token?suite_access_token=' . $access_token;
    $params = json([
        'auth_corpid' => $corpid,
        'permanent_code' => $permanent_code
    ]);
    $info = $this->linkCurl($url, 'POST', $params);
    $res = djson($info);
    if (isset($res['errcode']) && $res['errcode'] != 0) {
        return toFail($res['errmsg']);
    }
    return toSuccess('success', ['token' => $res['access_token']]);
}

参数说明

参数

是否必须

说明

suite_access_token

三方应用凭证,获取点击可查看

auth_corpid

授权方企业corpid,通过获取永久授权码得到

permanent_code

永久授权码,通过get_permanent_code获取

返回结果

返回结果为json格式。

{
    "errcode":0 ,
    "errmsg":"ok" ,
    "access_token": "xxxxxx", 
    "expires_in": 7200
}

参数说明

参数

说明

access_token

授权方(企业)access_token,最长为512字节

expires_in

授权方(企业)access_token有效时间

应用消息

应用支持推送文本、图片、视频、文件、图文等类型。

请求方式

POST

请求地址

https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN

参数说明

参数

是否必须

说明

access_token

调用接口企业凭证

发送文本消息

其他消息类型需要上传临时素材后,才可调用暂无用到其他类型功能,因此本篇暂时只实现文本消息。

请求示例

通过上方封装好的凭证方法获取企业凭证,之后编辑好文本消息包体内容。

代码如下:

/**
 * 发送企业微信-文本消息
 * @return array|bool|mixed|string
 */
public function sendAppTextMsg()
{
    $get_token = $this->getCompanyToken('授权企业id', '企业永久授权码');
    if ($get_token['status'] != 1) {
        return $get_token;
    }
    $access_token = $get_token['data']['token'] ?? '';
    $url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?debug=1&access_token=' . $access_token;
    // 参数设置
    $params = json([
        "touser" => "YuanLaiShiNi",
        "msgtype" => "text",
        "agentid" => '授权企业安装时获取的agentid',
        "text" => [
            "content" => "今天已经是周三,请尽快完成计划完成事件。\n详情可点击<a href='http://www.baidu.com'>计划清单</a>查看,\n按照轻重缓急完成。"
        ],
        "safe" => 0,
        "enable_id_trans" => 0,
        "enable_duplicate_check" => 0,
        "duplicate_check_interval" => 1800,
    ]);

    return $this->linkCurl($url, 'POST', $params);
}

特殊说明

其中text参数的content字段可以支持换行、以及A标签,即可打开自定义的网页(可参考以上示例代码)(注意:换行符请用转义过的\n)

文本消息显示

返回内容
{"errcode":0,"errmsg":"ok","msgid":"WpLDpQFMGSE843kRbNhgXV0ggM0ngtU7e4rl2FNJGnSHw6BCjVyX8G_4bz8CpnrVjV1rbMI_h_xzkPismuXuQg"}

返回参数说明

参数

说明

errcode

返回码

errmsg

对返回码的文本描述内容

invaliduser

不合法的userid,不区分大小写,统一转为小写

invalidparty

不合法的partyid

invalidtag

不合法的标签id

unlicenseduser

没有基础接口许可(包含已过期)的userid

msgid

消息id,用于撤回应用消息

response_code

仅消息类型为“按钮交互型”,“投票选择型”和“多项选择型”的模板卡片消息返回,应用可使用response_code调用更新模版卡片消息接口,72小时内有效,且只能使用一次

注意

支持重复消息检查,当指定 "enable_duplicate_check": 1开启: 表示在一定时间间隔内,同样内容(请求json)的消息,不会重复收到;时间间隔可通过duplicate_check_interval指定,默认1800秒。

调用建议:大部分企业应用在每小时的0分或30分触发推送消息,容易造成资源挤占,从而投递不够及时,建议尽量避开这两个时间点进行调用。

频率限制:每应用不可超过账号上限数*200人次/天(注:若调用api一次发给1000人,算1000人次;若企业账号上限是500人,则每个应用每天可发送100000人次的消息)。每应用对同一个成员不可超过30次/分钟,1000次/小时,超过部分会被丢弃不下发。

总结

感觉企业微信中的文本消息类似于手机中的短信,还可以加跳转网站的链接,操作比较简单。

猜你喜欢

转载自blog.csdn.net/json_ligege/article/details/134691204