企业微信应用模板消息

是在发送应用消息接口的基础上,第三方应用支持一种新的消息类型:模板消息,msgtype指定为template_msg。模板消息是一种固定格式的消息。

注意

- 此消息类型目前仅第三方应用支持,自建应用不支持。服务商需在管理端申请模版。接口传参的内容必须与申请的模版匹配;

- 成员授权模式下,对于不在可见范围内的成员,第三方应用没有userid或open_userid,但可以通过传入合法且未过期的selected_ticket_list来推送模板消息,selected_ticket_list可通过返回ticket的选人接口获得。注意,管理员授权模式下,仅能给可见范围之内的成员推送消息,不在可见范围的成员将不能收到消息;

- 对于应用可见范围内的成员,直接通过touser指定即可,无须传入selected_ticket_list;

- 支持id转译,将userid/部门id转成对应的用户名/部门名。具体支持的范围和语法,请查看附录id转译说明。

设置模板

之前设置模板的时候,设置的【审批/汇报模板】还又是设置【应用和模板上线】,结果一直是测试提示模板不合法(改参数调试的一言难尽)。原来模板设置错位置了。

 

位置

在三方应用详情(我的是关联小程序应用详情)【应用通知模版】添加按钮。

注意:模板需要应用上线后才可设置。

如下图:

添加模板

点击新建模版,输入标题、关键字、示例内容、使用场景描述。

 点击【保存】后,返回应用详情出现刚才添加的模板标题和模板ID。

 

获取企业token

此处不再是使用三方应用的凭证,而是使用授权企业的access_token;因为这里开始调用企业的接口,故使用企业的access_token。

官网文档 -> 获取企业凭证

获取企业凭证 - 接口文档 - 企业微信开发者中心

请求方式

POST(HTTPS

请求地址

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

Post参数包体

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

参数说明

参数

是否必须

说明

suite_access_token

三方应用token

auth_corpid

授权方企业corpid

permanent_code

永久授权码,通过授权安装应用时获取的授权企业永久码

返回结果

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

返回参数说明

参数

说明

access_token

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

expires_in

授权方(企业)access_token超时时间

发送模板消息

请求方式

POST(HTTPS)

请求地址

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

请求示例

{
    "touser":"zhangsan|lisi",
    "agentid":10086,
    "msgtype":"template_msg",
    "template_msg":{
        "template_id":"ttxxlGlgIAwJrCTFjtndfgHPoIySyk6w",
        "url":"http://www.qq.com",
        "miniprogram":{
            "appid":"APPID",
            "pagepath":"/index.html"
        },
        "content_item":[
            {
                "key":"消息内容",
                "value":"您的合同模板已生成成功,点击查看详情"
            },
            {
                "key":"合同名称",
                "value":"电子签合同"
            },
            {
                "key":"我方企业",
                "value":"甲方"
            }
        ]
    }
}

 

示例效果

参数说明

参数

是否必须

说明

touser

指定接收消息的成员,成员ID列表(多个接收者用‘|’分隔,最多支持1000个)。

特殊情况:指定为"@all",则向该企业应用的全部可见成员发送

toparty

指定接收消息的部门,部门ID列表,多个接收者用‘|’分隔,最多支持100个。

当touser为"@all"时忽略本参数,成员授权模式下不应该传该参数

totag

指定接收消息的标签,标签ID列表,多个接收者用‘|’分隔,最多支持100个。

当touser为"@all"时忽略本参数,成员授权模式下不应该传该参数

msgtype

消息类型,此时固定为:template_msg

template_msg

消息内容

template_id

模板ID。第三方管理端创建模板后获得。对于正式授权的应用,需要审批通过后才可使用。最长64字节

url

点击模板消息后的跳转链接。最长2048字节。注意,url必须带协议头 "http://" 或 "https://" 。url和miniprogram 至少要填一个,都填时优先miniprogram。

content_item

消息内容键值对,允许个数范围:1~5,实际由申请的模板样式决定

key

1~20个utf8字符。注意,必须与template_id对应模板匹配

value

1~40个utf8字符

selected_ticket_list

选人sdk或者选人jsapi返回的ticket列表,列表不超过10个。接收者不包含selected_tikcet的操作者,若要发送给操作者,可将操作者填到touser字段。

enable_id_trans

表示是否开启id转译,0表示否,1表示是,默认0。

only_unauth

仅向selected_ticket_list中未授权的用户发送模板消息,仅当selected_ticket_list存在时该字段生效。如果该字段为true,则自动忽略touser,toparty,totag

miniprogram

点击后需要跳转的小程序,miniprogram和url至少要填一个,都填时优先miniprogram。

miniprogram.appid

在miniprogram节点中该字段必填,小程序appid,必须是与当前应用关联的小程序

miniprogram.pagepath

在miniprogram节点中该字段必填,表示点击消息卡片后的小程序页面,仅限本小程序内的页面。

返回结果

{
    "errcode":0,
    "errmsg":"ok",
    "msgid":"WpLDpQFMGSE843kRbNhgXQSuKwNg1AelVDuIPfLpwWzvnRqidF_TfABTDAFK0DZQGdHxI8zDUkgHPOclC88whQ"
}

返回参数说明

参数

说明

errcode

返回码

errmsg

对返回码的文本描述内容

invaliduser

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

invalidparty

不合法的partyid

invalidtag

不合法的标签id

unlicenseduser

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

msgid

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

response_code

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

总结

发送企业微信模板消息,需要应用上线审核后,在应用详情设置模板后获得模板ID,这才是合法的模板ID。其余来说没有什么难度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/235574.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Maven基础

目录 Maven坐标 坐标简介 主要组成 Maven依赖管理 配置依赖 依赖简介 配置依赖 依赖传递 依赖传递简介 排除依赖 依赖范围 生命周期 生命周期简介 执行指定生命周期 Maven坐标 坐标简介 Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资…

NSSCTF web刷题记录7

文章目录 [SDCTF 2022]CURL Up and Read[NUSTCTF 2022 新生赛]Translate [SDCTF 2022]CURL Up and Read 考点:SSRF 打开题目发现是curl命令,提示填入url 尝试http://www.baidu.com,成功跳转 将url的字符串拿去解码,得到json格式数…

LVGL | Demo实例使用说明

LVGL | Demo实例使用说明 时间:2023年12月10日21:51:17 文章目录 LVGL | Demo实例使用说明Demos for LVGLAdd the examples to your projectsDemosWidgetsMusic playerKeypad and encoderBenchmarkStress Contributing Demos for LVGL Add the examples to your p…

做题总结 59. 螺旋矩阵 II

跟着代码随想录顺序到这题,不会做。不知道怎么才能实现。 PS:我是用 java实现的。 题目:给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 总结思路为&am…

Android音量调节参考一

基于android 9平台分析。 在Android系统中,默认的设备(phone等)音量都是分开控制的,这些包括媒体、铃声、闹铃、蓝牙、通话通过音频流来区别不同的音量类型。每种流类型都定义最大音量、最小音量及默认音量,Android 9定了了11中音频流类型&am…

Shell 常用命令详解-上

Shell 常用命令详解-上 1.目录查阅相关命令2.文件操作相关命令 1.目录查阅相关命令 ll 命令 命令描述:ll命令用于显示指定工作目录下的内容。 命令格式:ll [参数] [目录名]。 参数说明: 参数说明-a显示所有文件及目录(包括隐藏文…

Modelscope Agent初体验与思考

背景:LLM → \to → Agent ChatGPT为代表的大语言模型就不用过多的介绍了,ChatGPT很强大,但是也有做不到的东西。 例如: 实时查询问题:实时的天气,地理位置,最新新闻报道,现实世…

基于ssm保险业务管理系统设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本保险业务管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

手动搭建koa+ts项目框架(基础)

文章目录 前言一、TS配置文件1、全局安装TypeScript2、项目根目录创建Typescript配置文件 二、项目初始化配置文件(package.json)1、初始化配置文件2、安装依赖 三、开启简单的服务API入口文件新增脚本 总结如有启发,可点赞收藏哟~ 前言 为什…

外贸开发信主题行写法?邮件的主题怎么写?

如何写高点击率的外贸开发信主题行?推荐的电子邮件主题行有哪些? 外贸开发信如何设计一个引人注目的主题行,成为了外贸从业者需要深入思考的问题。在本文中,蜂邮将探讨外贸开发信主题行的写作方法,以确保您的邮件能够…

Stable Diffusion这样的文本-图像生成模型有记忆吗?

Stable Diffusion扩散模型作为生成高质量图像的先进模型,却伴随着对训练数据的记忆化倾向,引发了隐私和安全性的担忧。AIGCer分享一篇分析该现象的文章,通过两个案例研究深入挖掘了文本复制现象,旨在为未来生成模型的改进提供重要…

调试备忘录-NTC电阻的使用(教程 + 代码)

软件环境:CodeWarrior 11.1 硬件环境:NXP S9KEAZ64A 传感器参数:NTC热敏电阻(R25 50k,B25-50 3950) 写在前面 最近做小项目需要用到NTC电阻,因此写一个调试备忘录记录下。 什么是NTC电阻? NTC热敏电阻就是负温度…

【CiteSpace】引文可视化分析软件CiteSpace下载与安装

CiteSpace 译“引文空间”,是一款着眼于分析科学分析中蕴含的潜在知识,是在科学计量学、数据可视化背景下逐渐发展起来的引文可视化分析软件。由于是通过可视化的手段来呈现科学知识的结构、规律和分布情况,因此也将通过此类方法分析得到的可…

JMS(Java Message Service)使用指南

介绍 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。它是一…

1631. 最小体力消耗路径

一、题目 1、题目描述 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) (注意…

分布式事务Seata(别名Seta)(持续学习中)

1.为什么学习他? 当一台机器的时候,只需要本地事务回滚就好了,还有MonogoDB最好不要放敏感数据,特别是旧的版本,没有事务功能(ACID), 分布式事务,也是属于多线程问题,就是把多台机器变成一台机器(他拥有更多线程,但是也要考虑网络问题),redis在一台机器是单线程的,但是多台机器…

Playground v2:a new leap in creativity

https://huggingface.co/playgroundai/playground-v2-1024px-aesthetichttps://huggingface.co/playgroundai/playground-v2-1024px-aestheticPlayground v2:超越SDXL的模型来了 - 知乎Playground团队刚刚发布了新的文生图模型Playground v2,它是基于SDX…

基于MyBatis二级缓存深入装饰器模式

视频地址 学习文档 文章目录 一、示意代码二、装饰器三、经典案例—MyBatis二级缓存1、Cache 标准定义2、PerpetualCache 基础实现3、增强实现3-1、ScheduledCache3-2、LruCache 先来说说我对装饰器理解:当你有一个基础功能的代码,但你想在不改变原来代…

案例027:基于微信小程序的校园二手平台的设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

【Docker】进阶之路:(二)Docker简介

【Docker】进阶之路:(二)Docker简介 什么是 DockerDocker 由来与发展历程Docker的架构与组成Docker容器生态容器核心技术容器规范容器平台技术 为什么使用DockerDocker的应用场景 什么是 Docker 简单地讲,Docker就是一个应用容器…