jostudio.wechatmenu.php,微信/易信公共平台开发(2):自定义菜单的PHP实现(提供源码)...
微信/易信公共平臺開發(二):自定義菜單的PHP實現(提供源碼)
微信把公眾號分成訂閱號和服務號兩種,服務號可以自定義菜單, 菜單大大方便了用戶操作。
比如:公眾服務號 "中國南方航空" 的自定義菜單如下圖:
點菜單就可以直接進入操作了,方便!
PS:微信服務號需要以單位身份注冊(需上傳單位證件等進行認證),個人身份只能注冊訂閱號(無自定義菜單)
PS:易信允許所有公眾號均可自定義菜單(還是易信好!)
但是,對于公共平臺開發者來說,定義、生成菜單還真有一點點麻煩。
我看了開發文檔,測試了3個小時,才算搞明白了。在此,寫點心得,并提供一個類,徹底簡化開發者的編碼工作。
先講一下原理(詳見公共平臺開發文檔):
1,注冊公眾號、開通開發者模式時,平臺將提供兩個參數 APPID,APPSECRET (對于微信的訂閱號,平臺不提供; 易信所有公眾號均提供)
2,自定義菜單前,須向平臺申請一個使用憑證(AccessToken), 方法如下:
用GET方式讀取URL https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
其中:APPID,APPSECRET 用實際參數值代入
返回結果是一個JSON格式的文本,其中有AccessToken. (JSON是一種數據交換格式,不了解的同學要從頭學一下才能明白)
AccessToken不是永久有效的,返回結果中有一個失效時間,即過了XX秒后(一般是一天左右), AccessToken就會失效。
對于易信平臺,上述URL為
https://api.yixin.im/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
3,獲得有效的AccessToken后,就可以進行自定義菜單創建、刪除操作了。
3.1 創建菜單
用POST方式向這個URL提交菜單定義數據, URL:https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
其中:ACCESS_TOKEN 用實際參數值代入
菜單定義數據是一個JSON格式的文本 (開發文檔講得不是那么清晰,讓我理解了好一會),做為POST方式的提交數據
返回結果是一個JSON格式的文本,其中有操作成功碼和出錯信息
對于易信平臺,創建菜單的URL為
https://api.yixin.im/cgi-bin/menu/create?access_token=ACCESS_TOKEN
3.2 刪除菜單
用GET方式讀取URL https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN
其中:ACCESS_TOKEN 用實際參數值代入
返回結果是一個JSON格式的文本,其中有AccessToken. (JSON是一種數據交換格式,不了解的同學要從頭學一下才能明白)
AccessToken不是永久有效的,返回結果中還有一個失效時間,即過了XX秒后(一般是一天左右), AccessToken就會失效。
對于易信平臺,上述URL為
https://api.yixin.im/cgi-bin/menu/delete?access_token=ACCESS_TOKEN
上述過程需要開發者非常了解 HTTP協議細節和JSON格式,對于一般開發者來說,可能是個噩夢。
經本人編碼、測試,在此提供兩個類,徹底簡化開發者的自定義菜單的開發工作 (開發者無需再去理解HTTP協議、JSON和公共平臺協議了)
結果如下:
開發語言: PHP 5.X
源碼下載地址:
http://download.csdn.net/detail/c80486/6357873
文件名:jostudio.wechatmenu.php?? 此處只講其使用。(感興趣的同學,可以看源代碼注釋)
文件中定義了兩個類:
第一個類:WeChatMenu? 用于菜單操作
第二個類:MenuDefine 用于菜單數據定義
用這兩個類實現的自定義菜單操作,例程文件 test_menu.php
include_once 'jostudio.wechatmenu.php'; //包含WeChatMenu類
$AppId="9cXXXXXXXXXXXXXXXXXX";???? //公共平臺提供的AppId參數
$AppSecret="61XXXXXXXXXXXXXX"; //公共平臺提供的AppSecret參數
//創建一個WeChatMenu類的實例
$object = new WeChatMenu("weixin",$AppId, $AppSecret);?? //第一個參數 "weixin", 表明是針對微信平臺的
//$object = new WeChatMenu("yixin",$AppId, $AppSecret); //第一個參數 "yixin", 表明是針對易信平臺的
//定義一個菜單數據
$menu = new MenuDefine();?? //創建一個MenuDefine實例
$menu->menuStart();? //菜單開始
$menu->addMenu("娛樂天地");
$menu->addMenuItem("猜謎語", "riddle");
$menu->addMenuItem("講笑話", "joke");
$menu->addMenuItem("聽音樂", "music");
$menu->addMenuItem("看電影", "movie");
$menu->addMenuItem("看小說", "novel");
$menu->addMenu("實用工具");
$menu->addMenuItem(&q
總結
以上是生活随笔為你收集整理的jostudio.wechatmenu.php,微信/易信公共平台开发(2):自定义菜单的PHP实现(提供源码)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实时获取Android FP
- 下一篇: cisco ssl vpn设备和outl