微信企業消息推送
- 企業微信/企業号注冊
-
- 微信認證
- 消息推送
-
- 服務号
- 企業微信資料接口
- 背景開發
在軟體程式實際應用中,在軟體中推送可能還不能滿足實際需求,需要把消息推送到使用者手機,目前比較好的方式,可能是微信消息推送。是以做一個記錄
企業微信/企業号注冊
微信消息推送需要配合 企業微信号 做消息推送
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLzcGRNl3ZE5UMJpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzMTM5IzNxATMyAjMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
注冊連接配接
也可以使用微信公衆号實作消息推送。
微信認證
不管什麼方式都需要企業認證,認證方式如下:
需要支付300每次的認證費用
公衆号企業認證流程
消息推送
服務号
- text消息
- image消息
- voice消息
- video消息
- file消息
- news消息
- mpnews消息
text消息
{
"touser": "UserID1|UserID2|UserID3",
"toparty": " PartyID1 | PartyID2 ",
"totag": " TagID1 | TagID2 ",
"msgtype": "text",
"agentid": 1,
"text": {
"content": "Holiday Request For Pony(http://xxxxx)"
},
"safe":0
}
參數 必須 說明
touser 否 成員ID清單(消息接收者,多個接收者用‘|’分隔,最多支援1000個)。特殊情況:指定為@all,則向關注該企業應用的全部成員發送
toparty 否 部門ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
totag 否 标簽ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
msgtype 是 消息類型,此時固定為:text (支援消息型應用跟首頁型應用)
agentid 是 企業應用的id,整型。可在應用的設定頁面檢視
content 是 消息内容,最長不超過2048個位元組,注意:首頁型應用推送的文本消息在微信端最多隻顯示20個字(包含中英文)
safe 否 表示是否是保密消息,0表示否,1表示是,預設0
image消息
{
"touser": "UserID1|UserID2|UserID3",
"toparty": " PartyID1 | PartyID2 ",
"totag": " TagID1 | TagID2 ",
"msgtype": "image",
"agentid": 1,
"image": {
"media_id": "MEDIA_ID"
},
"safe":0
}
參數 必須 說明
touser 否 成員ID清單(消息接收者,多個接收者用‘|’分隔,最多支援1000個)。特殊情況:指定為@all,則向關注該企業應用的全部成員發送
toparty 否 部門ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
totag 否 标簽ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
msgtype 是 消息類型,此時固定為:image(不支援首頁型應用)
agentid 是 企業應用的id,整型。可在應用的設定頁面檢視
media_id 是 圖檔媒體檔案id,可以調用上傳臨時素材或者永久素材接口擷取,永久素材media_id必須由發消息的應用建立
safe 否 表示是否是保密消息,0表示否,1表示是,預設0
voice消息
{
"touser": "UserID1|UserID2|UserID3",
"toparty": " PartyID1 | PartyID2 ",
"totag": " TagID1 | TagID2 ",
"msgtype": "voice",
"agentid": 1,
"voice": {
"media_id": "MEDIA_ID"
},
"safe":0
}
參數 必須 說明
touser 否 成員ID清單(消息接收者,多個接收者用‘|’分隔,最多支援1000個)。特殊情況:指定為@all,則向關注該企業應用的全部成員發送
toparty 否 部門ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
totag 否 标簽ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
msgtype 是 消息類型,此時固定為:voice (不支援首頁型應用)
agentid 是 企業應用的id,整型。可在應用的設定頁面檢視
media_id 是 語音檔案id,可以調用上傳臨時素材或者永久素材接口擷取
safe 否 表示是否是保密消息,0表示否,1表示是,預設0
video消息
{
"touser": "UserID1|UserID2|UserID3",
"toparty": " PartyID1 | PartyID2 ",
"totag": " TagID1 | TagID2 ",
"msgtype": "video",
"agentid": 1,
"video": {
"media_id": "MEDIA_ID",
"title": "Title",
"description": "Description"
},
"safe":0
}
參數 必須 說明
touser 否 成員ID清單(消息接收者,多個接收者用‘|’分隔,最多支援1000個)。特殊情況:指定為@all,則向關注該企業應用的全部成員發送
toparty 否 部門ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
totag 否 标簽ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
msgtype 是 消息類型,此時固定為:video (不支援首頁型應用)
agentid 是 企業應用的id,整型。可在應用的設定頁面檢視
media_id 是 視訊媒體檔案id,可以調用上傳臨時素材或者永久素材接口擷取
title 否 視訊消息的标題,不超過128個位元組,超過會自動截斷
description 否 視訊消息的描述,不超過512個位元組,超過會自動截斷
safe 否 表示是否是保密消息,0表示否,1表示是,預設0
file消息
{
"touser": "UserID1|UserID2|UserID3",
"toparty": " PartyID1 | PartyID2 ",
"totag": " TagID1 | TagID2 ",
"msgtype": "file",
"agentid": 1,
"file": {
"media_id": "MEDIA_ID"
},
"safe":"0"
}
參數 必須 說明
touser 否 成員ID清單(消息接收者,多個接收者用‘|’分隔,最多支援1000個)。特殊情況:指定為@all,則向關注該企業應用的全部成員發送
toparty 否 部門ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
totag 否 标簽ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
msgtype 是 消息類型,此時固定為:file (不支援首頁型應用)
agentid 是 企業應用的id,整型。可在應用的設定頁面檢視
media_id 是 媒體檔案id,可以調用上傳臨時素材或者永久素材接口擷取
safe 否 表示是否是保密消息,0表示否,1表示是,預設0
news消息
{
"touser": "UserID1|UserID2|UserID3",
"toparty": " PartyID1 | PartyID2 ",
"totag": " TagID1 | TagID2 ",
"msgtype": "news",
"agentid": 1,
"news": {
"articles":[
{
"title": "Title",
"description": "Description",
"url": "URL",
"picurl": "PIC_URL"
},
{
"title": "Title",
"description": "Description",
"url": "URL",
"picurl": "PIC_URL"
}
]
}
}
參數 必須 說明
touser 否 成員ID清單(消息接收者,多個接收者用‘|’分隔,最多支援1000個)。特殊情況:指定為@all,則向關注該企業應用的全部成員發送
toparty 否 部門ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
totag 否 标簽ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
msgtype 是 消息類型,此時固定為:news (不支援首頁型應用)
agentid 是 企業應用的id,整型。可在應用的設定頁面檢視
articles 是 圖文消息,一個圖文消息支援1到8條圖文
title 否 标題,不超過128個位元組,超過會自動截斷
description 否 描述,不超過512個位元組,超過會自動截斷
url 否 點選後跳轉的連結。
picurl 否 圖文消息的圖檔連結,支援JPG、PNG格式,較好的效果為大圖640320,小圖8080。如不填,在用戶端不顯示圖檔
mpnews消息
注:mpnews消息與news消息類似,不同的是圖文消息内容存儲在微信背景,并且支援保密選項。每個應用每天最多可以發送100次。
a)發送時直接帶上mpnews内容:
{
"touser": "UserID1|UserID2|UserID3",
"toparty": " PartyID1 | PartyID2 ",
"totag": " TagID1 | TagID2 ",
"msgtype": "mpnews",
"agentid": 1,
"mpnews": {
"articles":[
{
"title": "Title",
"thumb_media_id": "id",
"author": "Author",
"content_source_url": "URL",
"content": "Content",
"digest": "Digest description",
"show_cover_pic": "0"
},
{
"title": "Title",
"thumb_media_id": "id",
"author": "Author",
"content_source_url": "URL",
"content": "Content",
"digest": "Digest description",
"show_cover_pic": "0"
}
]
},
"safe":0
}
參數 必須 說明
touser 否 成員ID清單(消息接收者,多個接收者用‘|’分隔,最多支援1000個)。特殊情況:指定為@all,則向關注該企業應用的全部成員發送
toparty 否 部門ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
totag 否 标簽ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
msgtype 是 消息類型,此時固定為:mpnews (不支援首頁型應用)
agentid 是 企業應用的id,整型。可在應用的設定頁面檢視
articles 是 圖文消息,一個圖文消息支援1到8個圖文
title 是 圖文消息的标題,不超過128個位元組,超過會自動截斷
thumb_media_id 是 圖文消息縮略圖的media_id, 可以在上傳多媒體檔案接口中獲得。此處thumb_media_id即上傳接口傳回的media_id
author 否 圖文消息的作者,不超過64個位元組
content_source_url 否 圖文消息點選“閱讀原文”之後的頁面連結
content 是 圖文消息的内容,支援html标簽,不超過666 K個位元組
digest 否 圖文消息的描述,不超過512個位元組,超過會自動截斷
show_cover_pic 否 是否顯示封面,1為顯示,0為不顯示
safe 否 表示是否是保密消息,0表示否,1表示是,預設0
b)發送時使用永久圖文素材ID:
{
"touser": "UserI1|UserID2|UserID3",
"toparty": " PartyID1 | PartyID2 ",
"msgtype": "mpnews",
"agentid": 1,
"mpnews": {
"media_id": "MEDIA_ID"
},
"safe": 0
}
參數 必須 說明
touser 否 成員ID清單(消息接收者,多個接收者用‘|’分隔,最多支援1000個)。特殊情況:指定為@all,則向關注該企業應用的全部成員發送
toparty 否 部門ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
totag 否 标簽ID清單,多個接收者用‘|’分隔,最多支援100個。當touser為@all時忽略本參數
msgtype 是 消息類型,此時固定為:mpnews (不支援首頁型應用)
agentid 是 企業應用的id,整型。可在應用的設定頁面檢視
media_id 是 素材資源辨別ID,通過上傳永久圖文素材接口獲得。注:必須是在該agent下建立的。
safe 否 表示是否是保密消息,0表示否,1表示是,預設0
企業微信資料接口
消息類型
文本消息
圖檔消息
語音消息
視訊消息
檔案消息
文本卡片消息
圖文消息
圖文消息(mpnews)
應用支援推送文本、圖檔、視訊、檔案、圖文等類型。
請求方式:POST(HTTPS)
請求位址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
參數說明:
參數 是否必須 說明
access_token 是 調用接口憑證
各個消息類型的具體POST格式請閱後續“消息類型”部分。
如果有在管理端對應用設定“在微工作台中始終進入首頁”,應用在微信端隻能接收到文本消息,并且文本消息的長度限制為20位元組,超過20位元組會被截斷。同時其他消息類型也會轉換為文本消息,提示使用者到企業微信檢視。
支援id轉譯,将userid/部門id轉成對應的使用者名/部門名,目前僅文本/文本卡片/圖文/圖文(mpnews)這四種消息類型的部分字段支援。具體支援的範圍和文法,請檢視附錄id轉譯說明。
支援重複消息檢查,當指定 “enable_duplicate_check”: 1開啟: 表示在一定時間間隔内,同樣内容(請求json)的消息,不會重複收到;時間間隔可通過duplicate_check_interval指定,預設1800秒。
傳回示例:
{
"errcode" : 0,
"errmsg" : "ok",
"invaliduser" : "userid1|userid2", // 不區分大小寫,傳回的清單都統一轉為小寫
"invalidparty" : "partyid1|partyid2",
"invalidtag": "tagid1|tagid2"
}
如果部分接收人無權限或不存在,發送仍然執行,但會傳回無效的部分(即invaliduser或invalidparty或invalidtag),常見的原因是接收人不在應用的可見範圍内。
如果全部接收人無權限或不存在,則本次調用傳回失敗,errcode為81013。
背景開發
選擇第三方推送工具或者自己開發消息推送背景
開發實作案例
1、微信企業号下的消息推送
2、微信企業号開發:主動發送消息