【微信易信公衆平臺開發】創建自定義菜單

本系列文章均爲A2BGeek原創,轉載務必在明顯處註明:
轉載自A2BGeek的【微信易信公衆平臺開發】系列,原文鏈接:http://blog.csdn.net/a2bgeek/article/details/17397157

我的個人博客站點已經開通,會有技術分享和其他一些有意思的東西,希望讀者能去訪問一下,網址是http://a2bgeek.me

這篇博客來介紹微信易信自定義菜單的創建。

概述

自定義菜單是目前很多平臺公衆號的一個標配,比如微信、易信、支付寶手機客戶端等,這個自定義菜單有什麼優點呢?對用戶來說就是簡化了操作步驟,原來需要輸入文字,有了自定義菜單後就只需要點擊一下;對於開發者來說,當然是爲交互設計提供了更多的選擇。那麼自定義菜單有什麼缺點呢?對用戶來說我覺得沒有缺點,但是對於開發者來說少了自定義菜單是一件非常不幸福的事情,目前微信的自定義菜單隻有申請成爲服務號才能玩,易信就沒有這個限制,所以我的這個系列博客叫做“微信易信公衆平臺開發”。微信目前的情況就是如果想用公衆號做營銷那麼最好不要升級爲服務號,因爲服務號一個月才能羣發一條消息。如果你發現“騎行西藏、雲南移動精彩無限”這樣的賬號怎麼既有自定義菜單又能每天羣發消息,我只能說是剛有自定義菜單時的內測號或者是有內部申請渠道也不一定。。。

創建自定義菜單的步驟

其實不難,很簡單,即使不寫代碼也能創建,我用命令行執行兩條命令就能創建。

STEP1

第一條是:

curl https://api.yixin.im/cgi-bin/token?grant_type=client_credential\&appid=XXXXX\&secret=XXXXX

這條是發送一個GET請求到微信易信的服務器,去申請一個叫做access_token的東西,這個access_token有什麼用呢?它是我們去調用微信易信接口的憑證,微信中用到access_token的接口比較多,比如用戶管理、自定義菜單、推廣支持這些功能,易信目前只有自定義菜單會用到。

STEP2

第二條我們需要發送一個POST請求到微信易信的服務器,POST的請求的數據是一個JSON字符串,這個JSON字符串的結構如下:

{
    "button": [
        {
            "name": "天氣查詢", 
            "type": "click",
            "key": "queryweather"
        }, 
        {
            "name": "空氣質量查詢", 
            "type": "click", 
            "key": "queryairquality"
        }, 
        {
            "name": "優質內容", 
            "sub_button": [
                {
                    "name": "每日英語",
                    "type": "click",
                    "key": "dailyen"
                },
                {
                    "name": "知乎每日精選",
                    "type": "click",
                    "key": "dailyzhihu"
                },
                {
                    "name": "每日笑話",
                    "type": "click",
                    "key": "dailyjoke"
                }
            ]
        }   
    ]
}

第二條指令如下:


curl https://api.yixin.im/cgi-bin/menu/create?access_token=XXXXXX -d '{"button":[{"name": "天氣查詢", "type": "click","key": "queryweather"}, {"name": "空氣質量查詢", "type": "click","key": "queryairquality"}, {"name": "優質內容", "sub_button": [{"name": "每日英語","type": "click","key": "dailyen"},{"name": "知乎每日精選","type": "click","key": "dailyzhihu"},{"name": "每日笑話","type": "click","key": "dailyjoke"}]}]}'

OK,創建成功了,上圖:

至此自定義菜單就創建成功了,但這只是界面,沒有功能,那麼自定義菜單怎麼和我們的服務器交互呢?這一點上微信易信的做法是相同的,把點擊事件封裝成一個XML發送到我們的服務器,這個XML的格式如下:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[CLICK]]></Event>
<EventKey><![CDATA[EVENTKEY]]></EventKey>
</xml>
其中<EventKey>對應的就是上面JSON中的"key",這樣就可以知道用戶想要得到什麼內容了。

最後還要說一點就是易信的自定義菜單功能上比微信的還是差一些的,微信的button多了一個view type,用戶點擊view類型按鈕後,微信客戶端將會打開開發者在按鈕中填寫的url值(即網頁鏈接),達到打開網頁的目的。

OK,今天的內容就到這裏。


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