国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#微信開發之自定義菜單管理

2020-01-24 00:47:16
字體:
來源:轉載
供稿:網友

自定義菜單管理

①接口說明

微信服務號聊天窗口下面的菜單項(有的公眾號有啟用有的則沒有),這個可以在編輯模式簡單配置,也可以在開發模式代碼配置。微信公眾平臺開發者文檔:微信公眾號開發平臺創建自定義菜單,可以看到創建菜單的一些注意事項,下面的使用網頁調試工具調試該接口,只是調試接口是否可以正常調用,并不是直接創建菜單,根據微信自定義菜單管理文檔菜單事件可分為兩種:

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("~/") + "http://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"}

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 峨眉山市| 扶沟县| 肃南| 高青县| 海伦市| 石嘴山市| 怀集县| 金坛市| 常州市| 葫芦岛市| 山阳县| 咸宁市| 山丹县| 丰原市| 邢台县| 临泽县| 民权县| 鹤岗市| 博野县| 白沙| 梧州市| 丽水市| 平山县| 理塘县| 杭锦后旗| 榆中县| 巴林右旗| 白银市| 井冈山市| 武功县| 大同县| 富裕县| 濮阳县| 夹江县| 河北省| 阿拉善盟| 霸州市| 丽江市| 景东| 正阳县| 固原市|