微信公眾平台開發模式 自定義菜單 指南與菜單新建錯誤代碼分析


簡介

開發者獲取使用憑證(如何獲取憑證)后,可以使用該憑證對公眾賬號的自定義菜單進行創建、查詢和刪除等操作。 自定義菜單接口可實現以下類型按鈕:

click(點擊事件):

用戶點擊click類型按鈕后,微信服務器會通過消息接口(event類型)推送點擊事件給開發者,並且帶上按鈕中開發者填寫的key值,開發者可以通過自定義的key值進行消息回復

創建自定義菜單后,由於微信客戶端緩存,需要24小時微信客戶端才會展現出來。建議測試時可以嘗試取消關注公眾賬號后,再次關注,則可以看到創建后的效果。

菜單創建

接口說明

通過POST一個特定結構體,實現在微信客戶端創建自定義菜單。

請求說明

http請求方式:POST  https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN  

請求示例

{
"button":[
{
"type":"click",
"name":"今日歌曲",
"key":"V1001_TODAY_MUSIC"
},
{
"type":"click",
"name":"歌手簡介",
"key":"V1001_TODAY_SINGER"
},
{
"name":"菜單",
"sub_button":[
{
"type":"click",
"name":"hello word",
"key":"V1001_HELLO_WORLD"
},
{
"type":"click",
"name":"贊一下我們",
"key":"V1001_GOOD"
}]
}]
}

創建后效果:

創建后效果

參數說明

參數 是否必須 說明
button 按鈕數組,按鈕個數應為1~3個
sub_button 子按鈕數組,按鈕個數應為1~5個
type 按鈕類型,目前有click類型
name 按鈕描述,既按鈕名字,不超過16個字節,子菜單不超過40個字節
key 類型為click必須 按鈕KEY值,用於消息接口(event類型)推送,不超過128字節

返回說明

正確的Json返回結果:

{"errcode":0,"errmsg":"ok"}  

錯誤的Json返回結果

{"errcode":40018,"errmsg":"invalid button name size"}  

統一返回碼說明

菜單查詢

接口說明

查詢當前使用的自定義菜單結構。

請求說明

http請求方式:GET  https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKEN  

返回說明

對應創建接口,正確的Json返回結果:  {"menu":{"button":[{"type":"click","name":"今日歌曲","key":"V1001_TODAY_MUSIC","sub_button":[]},{"type":"click","name":"歌手簡介","key":"V1001_TODAY_SINGER","sub_button":[]},{"name":"菜單","sub_button":[{"type":"click","name":"hello word","key":"V1001_HELLO_WORLD","sub_button":[]},{"type":"click","name":"贊一下我們","key":"V1001_GOOD","sub_button":[]}]}]}}  

統一返回碼說明

菜單刪除

接口說明

取消當前使用的自定義菜單。

請求說明

http請求方式:GET  https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN  

返回說明

對應創建接口,正確的Json返回結果:  {"errcode":0,"errmsg":"ok"}  

統一返回碼說明

請先確保公眾賬號已經擁有接口調用權限。

默認每個公眾帳號都不能超過下面的頻率限制。 當超出調用接口頻率限制,調用對應接口將會收到如下錯誤信息:

{"errcode":45009,"errmsg":"api freq out of limit"}  

接口調用頻率限制

接口名稱 頻率限制
獲取憑證接口 200(次/天)
自定義菜單創建接口 100(次/天)
自定義菜單查詢接口 1000(次/天)
自定義菜單刪除接口 100(次/天)

 

返回碼說明

返回碼 說明
-1 系統繁忙
0 請求成功
40001 驗證失敗
40002 不合法的憑證類型
40003 不合法的OpenID
40004 不合法的媒體文件類型
40005 不合法的文件類型
40006 不合法的文件大小
40007 不合法的媒體文件id
40008 不合法的消息類型
40009 不合法的圖片文件大小
40010 不合法的語音文件大小
40011 不合法的視頻文件大小
40012 不合法的縮略圖文件大小
40013 不合法的APPID
40014 不合法的access_token
40014 不合法的access_token
40015 不合法的菜單類型
40016 不合法的按鈕個數
40017 不合法的按鈕個數
40018 不合法的按鈕名字長度
40019 不合法的按鈕KEY長度
40020 不合法的按鈕URL長度
40021 不合法的菜單版本號
40022 不合法的子菜單級數
40023 不合法的子菜單按鈕個數
40024 不合法的子菜單按鈕類型
40025 不合法的子菜單按鈕名字長度
40026 不合法的子菜單按鈕KEY長度
40027 不合法的子菜單按鈕URL長度
40028 不合法的自定義菜單使用用戶
41001 缺少access_token參數
41002 缺少appid參數
41003 缺少refresh_token參數
41004 缺少secret參數
41005 缺少多媒體文件數據
41006 缺少media_id參數
41007 缺少子菜單數據
42001 access_token超時
43001 需要GET請求
43002 需要POST請求
43003 需要HTTPS請求
44001 多媒體文件為空
44002 POST的數據包為空
44003 圖文消息內容為空
45001 多媒體文件大小超過限制
45002 消息內容超過限制
45003 標題字段超過限制
45004 描述字段超過限制
45005 鏈接字段超過限制
45006 圖片鏈接字段超過限制
45007 語音播放時間超過限制
45008 圖文消息超過限制
45009 接口調用超過限制
45010 創建菜單個數超過限制
46001 不存在媒體數據
46002 不存在的菜單版本
46003 不存在的菜單數據
47001 解析JSON/XML內容錯誤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM