微信公眾號介面介面
此部分介面用於設定微信內公眾號的介面
一、自定義選單建立介面
自定義選單指微信應用內公眾號的選單介面,由第三方伺服器通過微信後臺設定(json的形式),地址為post–https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
自定義選單限制如下:
- 自定義選單最多包括3個一級選單,每個一級選單最多包含5個二級選單。
- 一級選單最多4個漢字,二級選單最多7個漢字,多出來的部分將會以“…”代替。
- 建立自定義選單後,選單的重新整理策略是,在使用者進入公眾號會話頁或公眾號profile頁時,如果發現上一次拉取選單的請求在5分鐘以前,就會拉取一下選單,如果選單有更新,就會重新整理客戶端的選單。測試時可以嘗試取消關注公眾賬號後再次關注,則可以看到建立後的效果。
自定義選單介面可實現多種按鈕,這些按鈕有不同的type型別,可以約定微信後臺如何向第三方後臺傳送資料,這些type包括:
type | 描述 | 微信後臺傳送的資料 |
---|---|---|
click | 點選 | 傳送按鈕的key |
view | 開啟開發者在按鈕中填寫的網頁URL | |
scancode_push | 調起掃一掃,完成後顯示結果,如果開發者在按鈕中填入了URL,那麼轉入URL | 掃碼結果 |
scancode_waitmsg | 與scancode_push不同的是會顯示“訊息接收中”提示框 | 掃碼結果 |
pic_sysphoto | 調起相機 | 拍攝的照片 |
pic_photo_or_album | 彈出選擇器供使用者選擇“拍照”或者“從手機相簿選擇” | 選擇/拍攝的照片 |
pic_weixin | 調起微信相簿 | 選擇的照片 |
location_select | 調起地理位置選擇工具 | 地理位置 |
media_id | 將開發者填寫的永久素材id對應的素材下發給使用者,永久素材型別可以是圖片、音訊、視訊、圖文訊息 | |
view_limited | 開啟開發者在按鈕中填寫的永久素材id對應的圖文訊息URL |
二、自定義選單查詢介面
使用介面建立自定義選單後,開發者還可使用介面查詢自定義選單的結構。另外請注意,在設定了個性化選單後,使用本自定義選單查詢介面可以獲取預設選單和全部個性化選單資訊。
地址為get–https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKEN
具體示例請看微信公眾平臺-自定義選單查詢介面
三、自定義選單刪除介面
使用介面建立自定義選單後,開發者還可使用介面刪除當前使用的自定義選單。另請注意,在個性化選單時,呼叫此介面會刪除預設選單及全部個性化選單。
地址為get–https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN
四、自定義選單事件推送
使用者點選自定義選單後,微信會把點選事件推送給開發者,請注意,點選選單彈出子選單,不會產生上報。
推送事件時包含很多資訊,如開發者微訊號、傳送方賬號、事件產生時間、訊息型別等,其中重要的是事件型別(Event)、事件KEY(EventKey)等,下面介紹各型別按鈕推送事件的重要域(完整域描述請看微信公眾平臺-自定義選單事件推送)
點選選單拉取訊息時的事件推送
click返回引數 描述 Event 事件型別,CLICK EventKey 事件KEY值,與自定義選單介面中KEY值對應 點選選單跳轉連結時的事件推送
view返回引數 描述 Event 事件型別,VIEW EventKey 事件KEY值,設定的跳轉URL MenuID 指選單ID,如果是個性化選單,則可以通過這個欄位,知道是哪個規則的選單被點選了。 scancode_push:掃碼事件的事件推送
引數 描述 Event 事件型別,scancode_push EventKey 事件KEY值,由開發者在建立選單時設定 ScanCodeInfo 掃描資訊 ScanType 掃描型別,一般是qrcode ScanResult 掃描結果,即二維碼對應的字串資訊 scancode_waitmsg:掃碼事件且彈出“訊息接收中”提示框的事件推送
引數 描述 Event 事件型別,scancode_waitmsg EventKey 事件KEY值,由開發者在建立選單時設定 ScanCodeInfo 掃描資訊 ScanType 掃描型別,一般是qrcode ScanResult 掃描結果,即二維碼對應的字串資訊 pic_sysphoto:彈出系統拍照發圖的事件推送
引數 描述 Event 事件型別,pic_sysphoto EventKey 事件KEY值,由開發者在建立選單時設定 SendPicsInfo 傳送的圖片資訊 Count 傳送的圖片數量 PicList 圖片列表 PicMd5Sum 圖片的MD5值,開發者若需要,可用於驗證接收到圖片 pic_photo_or_album:彈出拍照或者相簿發圖的事件推送
引數 描述 Event 事件型別,pic_photo_or_album EventKey 事件KEY值,由開發者在建立選單時設定 SendPicsInfo 傳送的圖片資訊 Count 傳送的圖片數量 PicList 圖片列表 PicMd5Sum 圖片的MD5值,開發者若需要,可用於驗證接收到圖片 pic_weixin:彈出微信相簿發圖器的事件推送
引數 描述 Event 事件型別,pic_weixin EventKey 事件KEY值,由開發者在建立選單時設定 SendPicsInfo 傳送的圖片資訊 Count 傳送的圖片數量 PicList 圖片列表 PicMd5Sum 圖片的MD5值,開發者若需要,可用於驗證接收到圖片 location_select:彈出地理位置選擇器的事件推送
引數 描述 Event 事件型別,location_select EventKey 事件KEY值,由開發者在建立選單時設定 SendLocationInfo 傳送的位置資訊 Location_X X座標資訊 Location_Y Y座標資訊 Scale 精度,可理解為精度或者比例尺、越精細的話 scale越高 Label 地理位置的字串資訊 Poiname 朋友圈POI的名字,可能為空
五、個性化選單介面
通過該介面,可以讓公眾號的不同使用者群體看到不一樣的自定義選單。該介面開放給已認證訂閱號和已認證服務號。
限制:
- 新增介面每日限制次數為2000次,刪除介面也是2000次,測試個性化選單匹配結果介面為20000次
- 最多隻能設定為跳轉到3個域名下的連結
- 建立個性化選單之前必須先建立預設選單
- 當用戶身上的標籤超過1個時,以最後打上的標籤為匹配
- 個性化選單的更新是會被覆蓋的
個性化介面具體內容如下:
建立個性化選單
地址:post–https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token=ACCESS_TOKEN
建立個性化選單與新增預設選單一樣,只是在後面加了matchrule欄位,用於指定此個性化選單適用於哪些群體。
新增的欄位引數如下:引數 是否必須 說明 tag_id 否 使用者標籤的id,可通過使用者標籤管理介面獲取 sex 否 性別:男(1)女(2),不填則不做匹配 client_platform_type 否 客戶端版本,當前只具體到系統型號:IOS(1), Android(2),Others(3),不填則不做匹配 country 否 國家資訊,是使用者在微信中設定的地區,具體請參考地區資訊表 province 否 省份資訊,是使用者在微信中設定的地區,具體請參考地區資訊表 city 否 城市資訊,是使用者在微信中設定的地區,具體請參考地區資訊表 language 否 語言資訊,是使用者在微信中設定的語言,具體請參考語言表 matchrule共六個欄位,均可為空,但不能全部為空,至少要有一個匹配資訊是不為空的。 country、province、city組成地區資訊,將按照country、province、city的順序進行驗證,要符合地區資訊表的內容。
新增成功後微信後臺返回menuid刪除個性化選單
地址為:post–https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token=ACCESS_TOKEN
post資訊為{“menuid”:”208379533”}
其根據menuid刪除選單測試個性化選單匹配結果
地址為:post–https://api.weixin.qq.com/cgi-bin/menu/trymatch?access_token=ACCESS_TOKEN
post資訊為{“user_id”:”weixin”}
其根據使用者id查詢此使用者匹配的選單內容
–
六、獲取自定義選單配置介面
本介面將會提供公眾號當前使用的自定義選單的配置,如果公眾號是通過API呼叫設定的選單,則返回選單的開發配置,而如果公眾號是在公眾平臺官網通過網站功能釋出選單,則本介面返回運營者設定的選單配置。
此介面與自定義選單查詢介面的不同之處在於,此介面無論公眾號的介面是如何設定的,都能查詢到介面,而自定義選單查詢介面則僅能查詢到使用API設定的選單配置。
地址:get–https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=ACCESS_TOKEN