微信企業消息推送方案


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

企業微信/企業號註冊

微信消息推送需要配合 企業微信號 做消息推送
在這裏插入圖片描述
註冊連接

也可以使用微信公衆號實現消息推送。

微信認證

不管什麼方式都需要企業認證,認證方式如下:
需要支付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、微信企業號開發:主動發送消息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章