微信公衆平臺自定義菜單開發

轉載至http://deng7784033.blog.163.com/blog/static/3826426620138510731934/

 

首先先介紹一下邏輯,因爲發現很多朋友都不能看懂微信官方的文檔,當然啦,這跟你是否認真看有關的,認真看總能看懂的,廢話不說了。此時,我當你已經有一個已經申請到自定義菜單開發權限的微信服務號。首先,你要在後臺開發模式下面找到你的AppId 還有 AppSecret並且記下來,然後通過這兩個官方發放給你的ID去獲取一個ACCESS_TOKEN【官方解釋是:第三方訪問api資源的票據】,稍後會通過這個ACCESS_TOKEN,提交你的菜單。

下面教你怎麼獲取這個ACCESS_TOKEN:
訪問這個鏈接https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET   但是訪問之前,把剛纔讓你記下來的AppId 還有 AppSecret 替換到鏈接裏面,然後複製到瀏覽器地址欄,一訪問,就返回幾個數據,裏面最長的那段就是我們要的ACCESS_TOKEN了。【當然,如果你還是不明白這個鏈接怎麼替換,那我只能再寫明白點了就是下面https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的APPID&secret=你的APPSECRET
要注意的是,這個ACCESS_TOKEN 是有時間限制的,超過了一定時間就會失效。就要重新獲取;另外,如果你剛獲取之後,又不小心獲取了一次,那麼前一次獲取到的值會失效,第二次的值生效。
接下來教大家怎麼創建菜單,代碼如下:
<?php
header("Content-type: text/html; charset=utf-8");

define("ACCESS_TOKEN", 'NYD-0s6f4yBJecqJ6QAiH7Nivh_gnWhbjs5vY1BZ9zViZAkYfw0QL5cO5ILK7lS3BkUCUrwqlDqzU9OVMaDO44Vuju7ZhXjdpJk8PxHgNf7cTs7rp6dvm-KJSkdiufqbL5niZwHM0uWJVi0mnSLGZg');

//創建菜單
function createMenu($data){
 $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)) {
  return curl_error($ch);
 }
 curl_close($ch);
 return $tmpInfo;
}
$data = ' {
     "button":[
     
      {
           "name":"時訊",
           "sub_button":[
            {
               "type":"click",
               "name":"即時新聞",
               "key":"jsxw"
            },
            {
               "type":"click",
               "name":"財經早餐",
               "key":"cjzc"
            },
			{
               "type":"click",
               "name":"焦點話題",
               "key":"jdht"
            },
			{
               "type":"view",
               "name":"財經日曆",
               "url":"http://stock1.sina.cn/dpool/stockv2/universal_calendar.php?vt=4"
            }]
       },
	   {
           "name":"說市",
           "sub_button":[
            {
               "type":"click",
               "name":"今日看盤",
               "key":"jrkp"
            },
            {
               "type":"view",
               "name":"行情刷新",
               "url":"http://XX/index.php/market/index"
            },
			{
               "type":"click",
               "name":"交易策略",
               "key":"jycl"
            },
			{
               "type":"click",
               "name":"投資天地",
               "key":"tztd"
            },
			{
               "type":"click",
               "name":"投資文庫",
               "key":"tzwk"
            }]
       },
	   {
           "name":"北鼎在線",
           "sub_button":[
            {
               "type":"view",
               "name":"關於我們",
               "url":"http://www.index.php/article/index/id/114"
            },
            {
               "type":"view",
               "name":"最新活動",
               "url":"http://www.index.php/article/index/id/115"
            },
			{
               "type":"view",
               "name":"參與爆料",
               "url":"http://www.index.php/message"
            }
			]
       }
	   
	   
	   
	   
	   ]
 }';
echo createMenu($data);//創建菜單
?>


 

如代碼所示,菜單有兩種,一種是直接跳轉到URL頁面,即view;另一種,是發送指令,即click,說白了就是在客戶端輔助用戶的,可以看成一鍵發關鍵詞。第一種很好做,填寫好URL就完事了,用戶點擊菜單按鈕,然後跳轉到你填寫的URL地址,缺點是URL地址不變,不夠靈活。另一種就是發送指令,可以在公衆賬號接口開發(注意跟自定義菜單區別開)的時候,判斷指令的內容,靈活處理並且動態輸出不同的數據。
通過POST方式把菜單的數據發送到微信服務器,在瀏覽器中看到的返回提示中,你看到OK的字眼,那麼就證明已經成功了。創建完菜單之後,由於微信客戶端的緩存要24小時才清理一次,所以你要馬上看到效果就需要重新關注你的公衆賬號。此時,你已經嘗試到勝利的果實了。

 

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