🎉 开放平台文档站换新颜。 欢迎填问卷给我们建议,意见,反馈,夸夸 →
Skip to Content
API文档通用能力接口消息通知企业微信应用通知

企业微信应用通知

最近更新时间: 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

请求体参数

参数名类型是否必须备注
userIdstring学工号,多个接收者用‘,’分隔,填写此字段可不填写touser参数
touserstring指定接收消息的成员(pid),成员ID列表(多个接收者用‘
totagstring指定接收消息的标签,标签ID列表,多个接收者用‘
msgtypestring消息类型(text, image, video, file, textcard, news, mpnews, markdown, miniprogram_notice, template_card)
agentidnumber企业应用的id,整型。企业内部开发,可在应用的设置页面查看
textobject此处字段名称为msgtype类型(各个类型示例请在解释说明中查阅)
safenumber表示是否是保密消息,0表示可对外分享,1表示不能分享且内容显示水印,默认为0
enable_id_transnumber表示是否开启id转译,0表示否,1表示是,默认0。
enable_duplicate_checknumber表示是否开启重复消息检查,0表示否,1表示是,默认0,开启: 表示在一定时间间隔内,同样内容(请求json)的消息,不会重复收到
duplicate_check_intervalnumber表示是否重复消息检查的时间间隔,默认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": "" } }