天天看點

微信企業消息推送方案企業微信/企業号注冊

微信企業消息推送

  • 企業微信/企業号注冊
    • 微信認證
    • 消息推送
      • 服務号
      • 企業微信資料接口
    • 背景開發

在軟體程式實際應用中,在軟體中推送可能還不能滿足實際需求,需要把消息推送到使用者手機,目前比較好的方式,可能是微信消息推送。是以做一個記錄

企業微信/企業号注冊

微信消息推送需要配合 企業微信号 做消息推送

微信企業消息推送方案企業微信/企業号注冊

注冊連接配接

也可以使用微信公衆号實作消息推送。

微信認證

不管什麼方式都需要企業認證,認證方式如下:

需要支付300每次的認證費用

公衆号企業認證流程

消息推送

服務号

  1. text消息
  2. image消息
  3. voice消息
  4. video消息
  5. file消息
  6. news消息
  7. 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、微信企業号開發:主動發送消息