微信自定義菜單這個就比較簡單,直接貼代碼。
微信說的注意:
目前自定義菜單最多包括3個一級菜單,每個一級菜單最多包含5個二級菜單。一級菜單最多4個漢字,二級菜單最多7個漢字,多出來的部分將會以“...”代替。請注意,創建自定義菜單后,由於微信客戶端緩存,需要24小時微信客戶端才會展現出來。建議測試時可以嘗試取消關注公眾賬號后再次關注,則可以看到創建后的效果。
1 #region 菜單管理 2 public ActionResult CreateMenu() 3 { 4 string access_token = weixin.AccessToken(); 5 string url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + access_token; 6 string data = ""; 7 8 using (StreamReader sr = new StreamReader(Server.MapPath("/Config/menu.txt"))) 9 { 10 data = sr.ReadToEnd(); 11 } 12 13 14 var json = HttpHelper.Post(url, data); 15 return Content(json); 16 } 17 18 public ActionResult DeleteMenu() 19 { 20 string access_token = weixin.AccessToken(); 21 string url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" + access_token; 22 23 var json = HttpHelper.Get(url); 24 return Content(json); 25 } 26 #endregion
返回結果
正確時的返回JSON數據包如下:
{"errcode":0,"errmsg":"ok"}錯誤時的返回JSON數據包如下(示例為無效菜單名長度):
{"errcode":40018,"errmsg":"invalid button name size"}
menu.txt
{
"button":[
{
"name":"一級標題1",
"sub_button":[
{
"type":"view",
"name":"二級標題1",
"url":"http://xx.xx.com/1.html"
},
{
"type":"view",
"name":"二級標題2",
"url":""
},
{
"type":"view",
"name":"二級標題3",
"url":""
},
{
"type":"view",
"name":"二級標題4",
"url":""
},
{
"type":"view",
"name":"二級標題5",
"url":""
}]
},
{
"type":"view",
"name":"一級標題2",
"url":"http://xx.xx.com/2.html"
},
{
"name":"一級標題3",
"sub_button":[
{
"type":"view",
"name":"二級標題1",
"url":""
},
{
"type":"view",
"name":"二級標題2",
"url":"http://xx.xx.com/3-1.html"
}]
}]
}