Senparc.Weixin.MP SDK 微信公眾平台開發教程(九):自定義菜單接口說明


    上一篇《Senparc.Weixin.MP SDK 微信公眾平台開發教程(八):通用接口說明》介紹了如何通過通用接口獲取AccessToken,有了AccessToken,我們就可以來操作自定義菜單,以及其他的高級接口,這一篇單講自定義菜單。

 

一、自定義菜單規則

  1. 自定義菜單分為一級菜單和二級菜單。
  2. 一級菜單數量為1-3個,即打開公眾賬號直接可以看到排列在最下方的最多3個按鈕。一級菜單的文字最多不能超過16字節(相當於8個漢字)。
  3. 二級菜單從屬於一級菜單,數量為1-5個。二級菜單的文字不最多不能超過40字節(相當於20個漢字)。
  4. 無論一級菜單還是二級菜單,都有兩個觸發事件可以選擇,分別是:點擊(click,值不能超過128字節)和打開網址(view,url不能超過256個字節)。
  5. 當一個一級菜單下有二級菜單存在的時候,這個一級菜單按鈕被點擊不會有任何事件發生。

二、創建菜單

  使用Senparc.Weixin.MP SDK創建自定義菜單非常簡單。只需三步:

  第一步:獲取AccessToken

var accessToken = AccessTokenContainer.TryGetToken(appId, appSecret).access_token;

  PS:如果第三步中使用AppId取代AccessToken,則這一步可以省略。

  第二步:組織菜單內容

ButtonGroup bg = new ButtonGroup();

//單擊
bg.button.Add(new SingleClickButton()
                    {
                        name = "單擊測試",
                        key = "OneClick",
                        type = ButtonType.click.ToString(),//默認已經設為此類型,這里只作為演示
                    });

//二級菜單
var subButton = new SubButton()
                    {
                        name = "二級菜單"
                    };
subButton.sub_button.Add(new SingleClickButton()
                            {
                                key = "SubClickRoot_Text",
                                name = "返回文本"
                            });
subButton.sub_button.Add(new SingleClickButton()
                            {
                                key = "SubClickRoot_News",
                                name = "返回圖文"
                            });
subButton.sub_button.Add(new SingleClickButton()
                            {
                                key = "SubClickRoot_Music",
                                name = "返回音樂"
                            });
subButton.sub_button.Add(new SingleViewButton()
                            {
                                url = "http://weixin.senparc.com",
                                name = "Url跳轉"
                            });
bg.button.Add(subButton);

  第三步:提交到微信服務器

var result = CommonApi.CreateMenu(accessToken, bg);

  上面SingleClickButton和SingleViewButton分別對應了click和view兩種菜單響應方式。

三、菜單查詢

  查詢菜單同樣需要按照上面的方式獲取AccessToken,然后只需要一行代碼:

var result = CommonApi.GetMenu(accessToken);

  得到的result.menu的結構即類似上述創建菜單時的ButtonGroup bg變量。

四、菜單刪除

  得到AccessToken后,刪除菜單同樣只需要一行代碼:

var result = CommonApi.DeleteMenu(accessToken);

五、菜單響應事件

  無論是click還是view,服務器都會收到不同的事件響應(見《Senparc.Weixin.MP SDK 微信公眾平台開發教程(六):了解MessageHandler》,分別觸發OnEvent_ClickRequest()和OnEvent_ViewRequest()。

  不同的是,click之后客戶端可以得到返回信息,而view在收到請求后,無論返回什么信息,客戶端都無法收到(直接打開URL了)。 

六、自定義菜單可視化編輯器

  目前盛派網絡在兩個地方提供了免費的自定義菜單可視化編輯器,免去大家需要運行代碼才能操作菜單的困境:

  1. 第一代:http://sdk.weixin.senparc.com/Menu

  2. 第二代:微微嗨(http://www.weiweihi.com),注冊添加微信公眾賬號之后即可獲得一系列強大的管理功能(下圖為微微嗨第一版,現已更新,可同樣在后台左側菜單找到)。

七、個性化菜單

  見:Senparc.Weixin.MP SDK 微信公眾平台開發教程(十七):個性化菜單接口說明

 

系列教程索引

地址:http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html

  1. Senparc.Weixin.MP SDK 微信公眾平台開發教程(一):微信公眾平台注冊
  2. Senparc.Weixin.MP SDK 微信公眾平台開發教程(二):成為開發者
  3. Senparc.Weixin.MP SDK 微信公眾平台開發教程(三):微信公眾平台開發驗證
  4. Senparc.Weixin.MP SDK 微信公眾平台開發教程(四):Hello World
  5. Senparc.Weixin.MP SDK 微信公眾平台開發教程(五):使用Senparc.Weixin.MP SDK
  6. Senparc.Weixin.MP SDK 微信公眾平台開發教程(六):了解MessageHandler
  7. Senparc.Weixin.MP SDK 微信公眾平台開發教程(七):解決用戶上下文(Session)問題
  8. Senparc.Weixin.MP SDK 微信公眾平台開發教程(八):通用接口說明
  9. Senparc.Weixin.MP SDK 微信公眾平台開發教程(九):自定義菜單接口說明
  10. Senparc.Weixin.MP SDK 微信公眾平台開發教程(十):多客服接口說明
  11. Senparc.Weixin.MP SDK 微信公眾平台開發教程(十一):高級接口說明
  12. Senparc.Weixin.MP SDK 微信公眾平台開發教程(十二):OAuth2.0說明
  13. Senparc.Weixin.MP SDK 微信公眾平台開發教程(十三):地圖相關接口說明
  14. Senparc.Weixin.MP SDK 微信公眾平台開發教程(十四):請求消息去重
  15. Senparc.Weixin.MP SDK 微信公眾平台開發教程(十五):消息加密
  16. Senparc.Weixin.MP SDK 微信公眾平台開發教程(十六):AccessToken自動管理機制
  17. Senparc.Weixin.MP SDK 微信公眾平台開發教程(十七):個性化菜單接口說明
  18. Senparc.Weixin.MP SDK 微信公眾平台開發教程(十八):Web代理功能
  19. Senparc.Weixin.MP SDK 微信公眾平台開發教程(十九):MessageHandler 的未知類型消息處理
  20. Senparc.Weixin.MP SDK 微信公眾平台開發教程(二十):使用菜單消息功能
  21. Senparc.Weixin.MP SDK 微信公眾平台開發教程(二十一):在小程序中使用 WebSocket (.NET Core)
  22. Senparc.Weixin.MP SDK 微信公眾平台開發教程(二十二):如何安裝 Nuget(dll) 后使用項目源代碼調試


免責聲明!

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



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