企业微信应用文本消息

news/2024/6/23 19:51:24

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

获取企业凭证

发送应用消息首先需要获取调用凭证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和企业永久授权码及三方企业凭证,先写好方法下方发送应用消息时使用。

代码如下:

/*** 获取授权企业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次/小时,超过部分会被丢弃不下发。

总结

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


https://www.xjx100.cn/news/3118782.html

相关文章

PlantUML语法(全)及使用教程-用例图

目录 1. 用例图1.1、什么是用例图1.2、用例图的构成1.3、参与者1.4、用例1.4.1、用例基本概念1.4.2、用例的识别1.4.3、用例的要点1.4.3、用例的命名1.4.4、用例的粒度 1.5、应用示例1.5.1、用例1.5.2、角色1.5.3、改变角色的样式1.5.4、用例描述1.5.5、改变箭头方向1.5.6、使用…

OpenCV4.x图像处理实例-常见图像滤镜特效实现

常见20多种图像滤镜特效实现 文章目录 常见20多种图像滤镜特效实现0、准备1、亮度调节2、细节强化3、底片效果4、卡通效果5、浮雕效果6、铅笔素描效果7、夏季或温色滤镜8、冬季或冷色滤波9、Splash滤镜10、双色调(Duo-Tone)滤镜11、日光(Daylight)滤镜12、60sTVs效果13、高…

记录一次现网问题排查(分享查域名是否封禁小程序)

背景&#xff1a; 收到工单反馈说现网业务一个功能有异常&#xff0c;具体现象是tc.hb.cn域名无法访问&#xff0c;客户地区是河南省&#xff0c;这里记录下排查过程和思路。 首先梳理链路 客户端域名 tc.hb.cn cname—> domainparking-dnspod.cn(新加坡clb)—> snat—&…

【知识】稀疏矩阵是否比密集矩阵更高效?

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 问题提出 有些地方说&#xff0c;稀疏图比密集图的计算效率更高&#xff0c;真的吗&#xff1f; 原因猜想 这里的效率高&#xff0c;应该是有前提的&#xff1a;当使用稀疏矩阵的存储格式(如CSR)时&#xff0c;计…

国内首个农业开源鸿蒙操作系统联合华为正式发布

2023年11月29日&#xff0c;在中国国际供应链促进博览会上&#xff0c;中信农业科技股份有限公司&#xff08;简称“中信农业”&#xff09;与深圳开鸿数字产业发展有限公司&#xff08;简称“深开鸿”&#xff09;以及华为技术有限公司&#xff08;简称“华为”&#xff09;联…

DeepStream系列之rtmpsink功能,rtsp转rtmp,opencv读取rtsp图像处理后推流rtmp

了解到一个更好的流媒体开源项目&#xff0c;是中国人写的&#xff0c;项目地址 https://github.com/ossrs/srs&#xff0c;有兴趣的可以尝试下&#xff0c;实时性更快 DeepStream系列之rtmpsink功能 实时性没要求&#xff0c;可以用下面的opencv opencv读取rtsp图像处理后推流…

Django回顾【三】

目录 一、模板层 1、介绍 2、了解 3、页面静态化 4、模版语法 5、内置过滤器 6、标签 for标签 if 标签 7、模板导入和继承 模板导入 模板继承 一、模板层 1、介绍 模板在浏览器中是运行不了的 ----》因为它有模板语法 ----》浏览器解析不了模板语法 必须在后端渲…

kubernetes七层负载Ingress搭建(K8S1.23.5)

首先附上K8S版本及Ingress版本对照 Ingress介绍 NotePort&#xff1a;该方式的缺点是会占用很多集群机器的端口&#xff0c;当集群服务变多时&#xff0c;这个缺点就愈发的明显(srevice变多&#xff0c;需要的端口就需要多) LoadBalancer&#xff1a;该方式的缺点是每个servi…