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

首頁 > 編程 > C# > 正文

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

2019-10-29 21:14:27
字體:
來源:轉載
供稿:網友

自定義菜單管理

①接口說明

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

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小時微信客戶端才會展現出來。測試時可以嘗試取消關注公眾賬號后再次關注,則可以看到創建后的效果。

 接口參數配置:

微信自定義菜單開發,C#微信自定義菜單開發

 ②請求接口:

 接口調用請求說明:

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"}

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


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长宁县| 麻栗坡县| 日喀则市| 安宁市| 襄垣县| 陆良县| 哈巴河县| 尼玛县| 聊城市| 岑巩县| 武清区| 土默特右旗| 赞皇县| 勐海县| 南城县| 仙居县| 哈密市| 个旧市| 沅江市| 宁安市| 高唐县| 双流县| 水城县| 靖边县| 安新县| 浮山县| 菏泽市| 定南县| 平南县| 新营市| 赤水市| 虎林市| 西安市| 资源县| 贡觉县| 喀喇| 墨脱县| 渭源县| 鄂尔多斯市| 托里县| 奉贤区|