企业微信应用通知
最近更新时间: 2025年06月18日 07时30分04秒
开放平台
描述
对接企业微信应用消息发送,应用支持推送文本、图片、视频、文件、图文等类型。
注意事项
- 如果部分接收人无权限或不存在,发送仍然执行,但会返回无效的部分(即invaliduser或invalidparty或invalidtag或unlicenseduser),常见的原因是接收人不在应用的可见范围内
- 权限包含应用可见范围和基础接口权限(基础账号、互通账号均可),unlicenseduser中的用户在应用可见范围内但没有基础接口权限
- 如果全部接收人无权限或不存在,则本次调用返回失败,errcode为81013
- 返回包中的userid,不区分大小写,统一转为小写
- userId、touser(pid)、toparty、totag不能同时为空,填写userId可不填写touser,开放平台会自动通过useId获取对应touser(pid)
支持的模式
客户端模式
请求方法
POST
请求地址
https://api.tongji.edu.cn/v1/openplatform/wecom/send_app_message
请求体参数
参数名 | 类型 | 是否必须 | 备注 |
---|---|---|---|
userId | string | 否 | 学工号,多个接收者用‘,’分隔,填写此字段可不填写touser参数 |
touser | string | 否 | 指定接收消息的成员(pid),成员ID列表(多个接收者用‘ |
totag | string | 否 | 指定接收消息的标签,标签ID列表,多个接收者用‘ |
msgtype | string | 是 | 消息类型(text, image, video, file, textcard, news, mpnews, markdown, miniprogram_notice, template_card) |
agentid | number | 是 | 企业应用的id,整型。企业内部开发,可在应用的设置页面查看 |
text | object | 是 | 此处字段名称为msgtype类型(各个类型示例请在解释说明中查阅) |
safe | number | 否 | 表示是否是保密消息,0表示可对外分享,1表示不能分享且内容显示水印,默认为0 |
enable_id_trans | number | 否 | 表示是否开启id转译,0表示否,1表示是,默认0。 |
enable_duplicate_check | number | 否 | 表示是否开启重复消息检查,0表示否,1表示是,默认0,开启: 表示在一定时间间隔内,同样内容(请求json)的消息,不会重复收到 |
duplicate_check_interval | number | 否 | 表示是否重复消息检查的时间间隔,默认1800s,最大不超过4小时 |
返回参数
参数名 | 类型 | 备注 | 码表 |
---|---|---|---|
data | object[object] | ||
invaliduser | string | 不合法的userid,不区分大小写,统一转为小写 | |
errcode | number | 返回码 | |
response_code | string | 仅消息类型为“按钮交互型”,“投票选择型”和“多项选择型”的模板卡片消息返回,应用可使用response_code调用更新模版卡片消息接口,72小时内有效,且只能使用一次 | |
invalidtag | string | 不合法的标签id | |
unlicenseduser | string | 没有基础接口许可(包含已过期)的userid | |
errmsg | string | 对返回码的文本描述内容 | |
msgid | string | 消息id,用于撤回应用消息 | |
invalidparty | string | 不合法的partyid | |
msg | string | ||
code | string | 业务状态码 |
解释说明
- 文本消息(text)
- 图片消息(image)
- 语音消息(voice)
- 视频消息(video)
- 文件消息(file)
- 文本卡片消息(textcard)
- 图文消息(news)
- 图文消息(mpnews)
- markdown消息(markdown)
- 小程序通知消息(miniprogram_notice)
- 模板卡片消息(template_card)
具体请求参考企业微信文档,请求参数一致 https://developer.work.weixin.qq.com/document/path/90236#%E6%8E%A5%E5%8F%A3%E5%AE%9A%E4%B9%89
- 文本消息(text)
其中text参数的content字段可以支持换行、以及A标签,即可打开自定义的网页(可参考以上示例代码)(注意:换行符请用转义过的\n)
请求示例:
{
"touser" : "UserID1|UserID2|UserID3",
"toparty" : "PartyID1|PartyID2",
"totag" : "TagID1 | TagID2",
"msgtype" : "text",
"agentid" : 1,
"text" : {
"content" : "你的快递已到,请携带工卡前往邮件中心领取。\n出发前可查看<a href=\"https://work.weixin.qq.com\">邮件中心视频实况</a>,聪明避开排队。"
},
"safe":0,
"enable_id_trans": 0,
"enable_duplicate_check": 0,
"duplicate_check_interval": 1800
}
- 图片消息(image)
请求示例:
{
"touser" : "UserID1|UserID2|UserID3",
"toparty" : "PartyID1|PartyID2",
"totag" : "TagID1 | TagID2",
"msgtype" : "image",
"agentid" : 1,
"image" : {
"media_id" : "MEDIA_ID"
},
"safe":0,
"enable_duplicate_check": 0,
"duplicate_check_interval": 1800
}
- 语音消息(voice)
请求示例:
{
"touser" : "UserID1|UserID2|UserID3",
"toparty" : "PartyID1|PartyID2",
"totag" : "TagID1 | TagID2",
"msgtype" : "voice",
"agentid" : 1,
"voice" : {
"media_id" : "MEDIA_ID"
},
"enable_duplicate_check": 0,
"duplicate_check_interval": 1800
}
- 文件消息(file)
请求示例:
{
"touser" : "UserID1|UserID2|UserID3",
"toparty" : "PartyID1|PartyID2",
"totag" : "TagID1 | TagID2",
"msgtype" : "file",
"agentid" : 1,
"file" : {
"media_id" : "1Yv-zXfHjSjU-7LH-GwtYqDGS-zz6w22KmWAT5COgP7o"
},
"safe":0,
"enable_duplicate_check": 0,
"duplicate_check_interval": 1800
}
- 文本卡片消息(textcard)
卡片消息的展现形式非常灵活,支持使用br标签或者空格来进行换行处理,也支持使用div标签来使用不同的字体颜色,目前内置了3种文字颜色:灰色(gray)、高亮(highlight)、默认黑色(normal),将其作为div标签的class属性即可。 请求示例:
{
"touser" : "UserID1|UserID2|UserID3",
"toparty" : "PartyID1 | PartyID2",
"totag" : "TagID1 | TagID2",
"msgtype" : "textcard",
"agentid" : 1,
"textcard" : {
"title" : "领奖通知",
"description" : "<div class=\"gray\">2016年9月26日</div> <div class=\"normal\">恭喜你抽中iPhone 7一台,领奖码:xxxx</div><div class=\"highlight\">请于2016年10月10日前联系行政同事领取</div>",
"url" : "URL",
"btntxt":"更多"
},
"enable_id_trans": 0,
"enable_duplicate_check": 0,
"duplicate_check_interval": 1800
}
- 图文消息(news)
请求示例:
{
"touser" : "UserID1|UserID2|UserID3",
"toparty" : "PartyID1 | PartyID2",
"totag" : "TagID1 | TagID2",
"msgtype" : "news",
"agentid" : 1,
"news" : {
"articles" : [
{
"title" : "中秋节礼品领取",
"description" : "今年中秋节公司有豪礼相送",
"url" : "URL",
"picurl" : "https://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png",
"appid": "wx123123123123123",
"pagepath": "pages/index?userid=zhangsan&orderid=123123123"
}
]
},
"enable_id_trans": 0,
"enable_duplicate_check": 0,
"duplicate_check_interval": 1800
}
- markdown消息(markdown)
微工作台(原企业号)不支持展示markdown消息 请求示例:
{
"touser" : "UserID1|UserID2|UserID3",
"toparty" : "PartyID1|PartyID2",
"totag" : "TagID1 | TagID2",
"msgtype": "markdown",
"agentid" : 1,
"markdown": {
"content": "您的会议室已经预定,稍后会同步到`邮箱` \n>**事项详情** \n>事 项:<font color=\"info\">开会</font> \n>组织者:@miglioguan \n>参与者:@miglioguan、@kunliu、@jamdeezhou、@kanexiong、@kisonwang \n> \n>会议室:<font color=\"info\">广州TIT 1楼 301</font> \n>日 期:<font color=\"warning\">2018年5月18日</font> \n>时 间:<font color=\"comment\">上午9:00-11:00</font> \n> \n>请准时参加会议。 \n> \n>如需修改会议信息,请点击:[修改会议信息](https://work.weixin.qq.com)"
},
"enable_duplicate_check": 0,
"duplicate_check_interval": 1800
}
请求示例
curl -X POST \
https://api.tongji.edu.cn/v1/openplatform/wecom/send_app_message \
-H 'Authorization: Bearer eyJhbxxxxxx' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-d '{
"touser" : "xxxx|xxxx|xxxx",
"msgtype" : "text",
"agentid" : 1xxxx9,
"text" : {
"content" : "测试消息"
}
}'
返回示例
{ "msg": "成功", "code": "A00000", "data": {
"errcode": 0,
"response_code": "",
"invalidtag": "",
"unlicenseduser": "", "errmsg": "ok",
"msgid": "RYNnYgeEPRPoY0_ThmqtZqwWo_ulAteZ8Q1koHnqT5aGLRyJmLnxjR9I4lSxEvkKNwIYawTWTyLCKOEgmDAXNei_VWRm4tGRkFEGWgRmpgs",
"invalidparty": "",
"invaliduser": ""
}
}