手把手教會你微信公眾平台自定義菜單開發——創建菜單


一如既往的,關於微信公眾平台的開發,不算出自大牛的代碼,但是簡單易懂適合剛入門的朋友。

首先先介紹一下邏輯,因為發現很多朋友都不能看懂微信官方的文檔,當然啦,這跟你是否認真看有關的,認真看總能看懂的,廢話不說了。此時,我當你已經有一個已經申請到自定義菜單開發權限的微信服務號。首先,你要在后台開發模式下面找到你的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小時才清理一次,所以你要馬上看到效果就需要重新關注你的公眾賬號。此時,你已經嘗試到勝利的果實了。
 
下一次,我將告訴大家怎么利用自定義菜單動態獲取圖文。內容:1、一個THINKPHP搭建的微網站 2、自定義接口開發技術  3、自定義菜單   關鍵詞:THINKPHP、 微網站、XML 微信自定義接口  微信自定義菜單    描述:用戶在微信端選擇指定欄目,自動獲取微網站相關的若干條圖文內容,每次更新都可以獲取到不同的內容
 
 
 
 
2014-7-27更新
太久沒來看博客了,所以不知道那么多朋友關注,實在讓我小有感動。有朋友提了問題,估計那么久已經解決了,抱歉不能及時回復。不過也不礙我在這里做一個統一回復。
問:key要怎么設?
答:這個問題我不明白具體是什么意思。我估計是搞不懂key實際上就是關鍵詞的意思,key的值其實是隨便設的,這個值相當於微信里面的關鍵詞,類似於你手動輸入關鍵詞發送到公眾平台獲取內容,自定義菜單的key作用就是類似於給你一鍵輸入關鍵詞並發送。你要做的就是設置一個跟已存在的關鍵詞不重復key的值,然后在處理關鍵詞的代碼里面給出相應的反饋。
 
問:appid appsecret怎么來的?
答:這個在當時是服務號才有的,后來認證的訂閱號也有。
 
問:用了你的代碼,為什么服務器返回錯誤
答:你用的是我的appid跟appsecret獲取到的access token執行的,而不是你自己的,這些參數是我的,給你用了會弄壞我的自定義菜單,所以參數我修改了部分,你要正常使用,必須用自己的參數,並且根據我說的步驟去進行。
 
問:這段代碼怎么使用
答:你可以手動訪問這段代碼的頁面的url就行了,比如代碼頁面的url是http://www.xingfenxiaozhu.com/index.php,你復制url到瀏覽器,然后訪問,如果沒有錯誤,自定義菜單就出來了。當然你也可以通過curl代碼模擬請求這段代碼頁面的url。
 
問:這些代碼參數在哪里看來的?
答:我也不記得了,估計是百度的吧,不過我現在已經學會了,在哪里看到其實已經不重要,重要的是你學習的方法。


免責聲明!

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



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