最近公司要做一個微信公眾賬號,花了點時間已經將一部分功能完成,其中就包括自定義菜單的實現,現在就將一些代碼分享給大家,覺得對自己有幫助就看看!
自微信進入5.0,公眾號有了服務號和訂閱號的區別,其中一個很重要的區別就是服務號可以自定義菜單,而訂閱號不可以,所以這篇文章只適合打算開發服務號的朋友。
讀這篇文章時,假設你已經成功的申請到了自定義菜單了權限,如果沒有,推薦你去看看這篇博文 《自定義菜單的創建及菜單事件響應》 http://blog.csdn.net/lyq8479/article/details/9841371 那么現在你已經有了自己的AppId和AppSecret,接下來就是獲取Token了,方法很簡單,如下所說:
請求說明
http請求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
這是微信上面的文檔,現在只要把上面鏈接中的APPID和APPSECRET修改為自己的AppId和AppSecret,然后直接拷貝至瀏覽器的地址欄窗口,回車即可獲取到那個Token了,如下所示,
{"access_token":"NUF35mOfsEQMoLhezC053RrU4G2rpFsvt5CmG6mFZtRhCsPmA3EK3W0ohUacF-d3lKJW6i7q_a9UrKRNPb6IRtX6FT1qRu_LAHi2FTxpxXwFNYFwIkWU2qqRA","expires_in":7200}
現在你的token已經獲取成功了,下來就是相關的代碼實現了。
public function createMenu(){ $ACCESS_TOKEN = "前面通過瀏覽器獲取到的Token"; $data = '{ "button":[ { "type":"click", "name":"搜索附近", "key":"1" }, { "type":"click", "name":"最新活動", "key":"2" }, { "name":"更多", "sub_button":[ { "type":"click", "name":"關於我們", "key":"3" }, { "type":"click", "name":"用戶反饋", "key":"4" }, { "type":"click", "name":"優倍周邊", "key":"5" }] }] }'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$ACCESS_TOKEN}"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $tmpInfo = curl_exec($ch); if (curl_errno($ch)) { echo 'Errno'.curl_error($ch); } curl_close($ch); var_dump($tmpInfo); }
現在和合適的位置調用上面的方法就可以實現菜單了,
<?php include_once('include/weixin.class.php'); define('TOKEN', 'ubive'); define('DEBUG', false); $weixin->createMenu(); ?>
注意一點:由於微信緩存的原因,你可能需要取消訂閱你原來的微信號后再重新訂閱才能看到菜單的效果:
補充一句,這篇博文的目的就是為了實現自定義菜單,所以代碼也是以實現目標為准,沒有做過多的優化,你可以根據自己的需求繼續修改,希望對你有所幫助。
如果覺得文章對你有所幫助,請通過留言或關注微信公眾帳號ubivea來支持我!