最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#微信開發(fā)之自定義菜單管理

 更新時間:2017年02月05日 12:54:07   作者:likar  
本文主要介紹了C#微信開發(fā)中自定義菜單管理的相關知識,具有一定的參考價值,下面跟著小編一起來看下吧

自定義菜單管理

①接口說明

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

click: 用戶點擊click類型按鈕后,微信服務器會通過消息接口推送消息類型為event 的結(jié)構(gòu)給開發(fā)者(參考消息接口指南),并且?guī)习粹o中開發(fā)者填寫的key值,開發(fā)者可以通過自定義的key值與用戶進行交互。

view: 用戶點擊view類型按鈕后,微信客戶端將會打開開發(fā)者在按鈕中填寫的url值 (即網(wǎng)頁鏈接),達到打開網(wǎng)頁的目的,建議與網(wǎng)頁授權(quán)獲取用戶基本信息接口結(jié)合,獲得用戶的登入個人信息。

設置菜單JSON格式(可根據(jù)需要進行修改):

{
  "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、創(chuàng)建自定義菜單后,由于微信客戶端緩存,需要24小時微信客戶端才會展現(xiàn)出來。測試時可以嘗試取消關注公眾賬號后再次關注,則可以看到創(chuàng)建后的效果。

 接口參數(shù)配置:

 ②請求接口:

 接口調(diào)用請求說明:

http請求方式:POST(請使用https協(xié)議)

https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

POST請求接口調(diào)用接口憑據(jù)ACCESS_TOKEN的獲取方式可參見文檔(獲取ACCESS_TOKEN文檔)使用POST方式帶上ACCESS_TOKEN以及菜單JSON請求接口,具體實現(xiàn)代碼如下:

/// <summary>
/// 創(chuàng)建菜單事件
/// </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>
/// 創(chuàng)建公眾號菜單
/// </summary>
/// <param name="posturl">URL</param>
/// <param name="postData">菜單JSON數(shù)據(jù)</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);
}

接口返回結(jié)果:

正確時返回的JSON數(shù)據(jù)包格式如下:

{"errcode":0,"errmsg":"ok"}

錯誤時的返回JSON數(shù)據(jù)包如下(示例為無效菜單名長度):

{"errcode":40018,"errmsg":"invalid button name size"}

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關文章

  • 解決C#中取消方向鍵對控件焦點控制的實現(xiàn)方法

    解決C#中取消方向鍵對控件焦點控制的實現(xiàn)方法

    本篇文章是對C#中取消方向鍵對控件焦點控制的解決方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C#簡單讀寫txt文件的方法

    C#簡單讀寫txt文件的方法

    這篇文章主要介紹了C#簡單讀寫txt文件的方法,涉及C#針對文件的基本打開、寫入、保存與讀取等操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • 詳解C#中Dictionary<TKey,TValue>的存儲結(jié)構(gòu)

    詳解C#中Dictionary<TKey,TValue>的存儲結(jié)構(gòu)

    無論是實際的項目中,還是在我們學習的過程中,都會重點的應用到Dictionary<TKey,?TValue>這個存儲類型,所以本文就來為大家介紹一下這一存儲結(jié)構(gòu)的相關知識,希望對大家有所幫助
    2023-11-11
  • 在C# WinForm應用中實現(xiàn)多語種切換功能

    在C# WinForm應用中實現(xiàn)多語種切換功能

    本文將介紹如何在一個WinForm應用程序中實現(xiàn)多語種切換,通過一個簡單的示例,你將了解到如何使用資源文件管理不同語言的文本,并通過用戶界面實現(xiàn)語言切換,需要的朋友可以參考下
    2024-06-06
  • Entity?Framework使用ObjectContext類

    Entity?Framework使用ObjectContext類

    這篇文章介紹了Entity?Framework使用ObjectContext類的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#操作FTP出現(xiàn)500錯誤解決辦法

    C#操作FTP出現(xiàn)500錯誤解決辦法

    最近在做項目的時候需要操作ftp進行文件的上傳下載,但在調(diào)用using (var response = (FtpWebResponse)FtpWebRequest.GetResponse())的時候總是出現(xiàn)"遠程服務器返回錯誤:(550)文件不可用(例如,未找到文件,無法訪問文件)"的異常
    2014-03-03
  • C#調(diào)用WebService實例開發(fā)

    C#調(diào)用WebService實例開發(fā)

    那么,我們怎么在項目中調(diào)用WebService這個方法呢,其實這和調(diào)用天氣的webservice是一個道理,首先,通過添加“web服務 引用”將,你寫的webservice引用進來,我們需要注意的是其中有一處要我們填寫請求webservice的URL地址,我們該怎么寫?
    2015-09-09
  • C# 任務的異常和延續(xù)處理

    C# 任務的異常和延續(xù)處理

    本文主要介紹了C# 任務的異常和延續(xù)處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-12-12
  • C# DataTable的詳細用法分享

    C# DataTable的詳細用法分享

    在項目中經(jīng)常用到DataTable,如果DataTable使用得當,不僅能使程序簡潔實用,而且能夠提高性能,達到事半功倍的效果,現(xiàn)對DataTable的使用技巧進行一下總結(jié)
    2013-11-11
  • C#獲取Visio模型信息的簡單方法示例

    C#獲取Visio模型信息的簡單方法示例

    這篇文章主要給大家介紹了關于C#獲取Visio模型信息的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-11-11

最新評論

黄陵县| 银川市| 临漳县| 揭西县| 高要市| 建德市| 库伦旗| 吉隆县| 沅江市| 济阳县| 崇礼县| 鲁甸县| 桂东县| 长岭县| 金塔县| 麟游县| 漳浦县| 苏尼特右旗| 玉树县| 合作市| 永定县| 达日县| 临猗县| 治县。| 濉溪县| 林西县| 广水市| 东港市| 漯河市| 祥云县| 九江县| 茂名市| 嘉义市| 祁门县| 随州市| 广平县| 固阳县| 林口县| 利辛县| 固始县| 平果县|