C#微信開發之自定義菜單管理。本站提示廣大學習愛好者:(C#微信開發之自定義菜單管理)文章只能為提供參考,不一定能成為您想要的結果。以下是C#微信開發之自定義菜單管理正文
自定義菜單管理
①接口闡明
微服氣務號聊天窗口上面的菜單項(有的大眾號有啟用有的則沒有),這個可以在編輯形式復雜配置,也可以在開發形式代碼配置。微信大眾平台開發者文檔:微信大眾號開發平台創立自定義菜單,可以看到創立菜單的一些留意事項,上面的運用網頁調試工具調試該接口,只是調試接口能否可以正常調用,並不是直接創立菜單,依據微信自定義菜單管理文檔菜單事情可分為兩種:
click: 用戶點擊click類型按鈕後,微服氣務器會經過音訊接口推送音訊類型為event 的構造給開發者(參考音訊接口指南),並且帶上按鈕中開發者填寫的key值,開發者可以經過自定義的key值與用戶停止交互。
view: 用戶點擊view類型按鈕後,微信客戶端將會翻開開發者在按鈕中填寫的url值 (即網頁鏈接),到達翻開網頁的目的,建議與網頁受權獲取用戶根本信息接口結合,取得用戶的登入團體信息。
設置菜單JSON格式(可依據需求停止修正):
{ "button":[ { "type":"click", "name":"昔日歌曲", "key":"V1001_TODAY_MUSIC" }, { "name":"菜單", "sub_button":[ { "type":"view", "name":"搜索", "url":"http://www.soso.com/" }, { "type":"view", "name":"視頻", "url":"http://v.qq.com/" }, { "type":"click", "name":"贊一下我們", "key":"V1001_GOOD" }] }] }
配置菜單的留意點:
1、自定義菜單最多包括3個一級菜單,每個一級菜單最多包括5個二級菜單。
2、一級菜單最多4個漢字,二級菜單最多7個漢字,多出來的局部將會以“...”替代。
3、創立自定義菜單後,由於微信客戶端緩存,需求24小時微信客戶端才會展示出來。測試時可以嘗試取消關注大眾賬號後再次關注,則可以看到創立後的效果。
接口參數配置:
②懇求接口:
接口調用懇求闡明:
http懇求方式:POST(請運用https協議)
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
POST懇求接口調用接口憑據ACCESS_TOKEN的獲取方式可參見文檔(獲取ACCESS_TOKEN文檔)運用POST方式帶上ACCESS_TOKEN以及菜單JSON懇求接口,詳細完成代碼如下:
/// <summary> /// 創立菜單事情 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void createMenu_Click(object sender, EventArgs e) { FileStream fs1 = new FileStream(Server.MapPath("~/") + "\\menuInfo.txt", FileMode.Open); StreamReader sr = new StreamReader(fs1, Encoding.GetEncoding("GBK")); string menu = sr.ReadToEnd(); sr.Close(); fs1.Close(); CreateMenu("https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN", menu); }
/// <summary> /// 創立大眾號菜單 /// </summary> /// <param name="posturl">URL</param> /// <param name="postData">菜單JSON數據</param> /// <returns></returns> public void CreateMenu(string posturl, string postData) { Stream outstream = null; Stream instream = null; StreamReader sr = null; HttpWebResponse response = null; HttpWebRequest request = null; Encoding encoding = Encoding.UTF8; byte[] data = encoding.GetBytes(postData); request = WebRequest.Create(posturl) as HttpWebRequest; CookieContainer cookieContainer = new CookieContainer(); request.CookieContainer = cookieContainer; request.AllowAutoRedirect = true; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; outstream = request.GetRequestStream(); outstream.Write(data, 0, data.Length); outstream.Close(); response = request.GetResponse() as HttpWebResponse; instream = response.GetResponseStream(); sr = new StreamReader(instream, encoding); string content = sr.ReadToEnd(); Context.Response.Write(content); }
接口前往後果:
正確時前往的JSON數據包格式如下:
{"errcode":0,"errmsg":"ok"}
錯誤時的前往JSON數據包如下(示例為有效菜單名長度):
{"errcode":40018,"errmsg":"invalid button name size"}
以上就是本文的全部內容,希望本文的內容對大家的學習或許任務能帶來一定的協助,同時也希望多多支持!