中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用.NET號開發微信公眾號創建自定義菜單

發布時間:2021-03-15 14:54:43 來源:億速云 閱讀:148 作者:小新 欄目:移動開發

這篇文章主要介紹了如何利用.NET號開發微信公眾號創建自定義菜單,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一.前言

開發之前,我們需要閱讀官方的接口說明文檔,不得不吐槽一下,微信的這個官方文檔真的很爛,但是,為了開發我們需要的功能,我們也不得不去看這些文檔.

接口文檔地址:http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html

看了這些個文檔,基本意思明白了,就是我們把我們要創建的菜單創建好,post到微信的服務器上面,微信服務器然后給我們一些狀態碼,從而判斷我們的菜單是否創建成功,只是在發送json數據以前我們要做一些身份驗證。

二.準備工作

首先把我們要創建的菜單寫在一個txt文本中:

        public string  access_token { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {
            FileStream fs1 = new FileStream(Server.MapPath(".") + "\\menu.txt", FileMode.Open);
            StreamReader sr = new StreamReader(fs1, Encoding.GetEncoding("UTF-8"));
            string menu = sr.ReadToEnd();
            sr.Close();
            fs1.Close();
            var str = GetPage("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxd811f5114e3e56f3&secret=76eb33f66129692da16d148cb3c024f1", "");
            JObject jo = JObject.Parse(str);
            access_token = jo["access_token"].ToString();
            GetPage("https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + access_token + "", menu);
        }

三.開始編碼

首先我們創建一個一般處理程序createMenu.ashx.

代碼如下:

        public string  access_token { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {
            FileStream fs1 = new FileStream(Server.MapPath(".") + "\\menu.txt", FileMode.Open);
            StreamReader sr = new StreamReader(fs1, Encoding.GetEncoding("UTF-8"));
            string menu = sr.ReadToEnd();
            sr.Close();
            fs1.Close();
            var str = GetPage("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxd811f5114e3e56f3&secret=76eb33f66129692da16d148cb3c024f1", "");
            JObject jo = JObject.Parse(str);
            access_token = jo["access_token"].ToString();
            GetPage("https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + access_token + "", menu);
        }

  這里需要注意的是appid,secret這些參數需要換成我們自己的,這些參數我們可以放在配置文件中。也可以單獨的放在一個幫助類里面。

同時在創建菜單的時候我們需要帶上我的access_token這個令牌來驗證我們的身份,那么我們首先要做的就是獲取我們的這個令牌,那個這個令牌要如何獲取了,我們可以通過一個接口獲取,只需要傳遞我們的appid和secret這個兩個參數

代碼如下:

{"access_token":"jVLAT9Rp9dNgxI4pb4RWlSx_9HJLXICmk_uWDlRtAug8wcaWhZZ10eqZCYRZrEwCIJf1-vBhS9YEX00Dj7qlJCyTIWOxTruOd25opkf-0","expires_in":7200}

  上面的GetPage方法的返回值。這樣我們就可以獲取我們的令牌了。

最后一步:帶上我們的令牌,post我們的json菜單數據就可以創建菜單了。

當你看到如下代碼:

{"errcode":0,"errmsg":"ok"}
  說明你的菜單創建成功了。

四:GetPage

代碼如下:

public string GetPage(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);
  // 準備請求...
  try
  {
    // 設置參數
    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;
    //直到request.GetResponse()程序才開始向目標網頁發送Post請求
    instream = response.GetResponseStream();
    sr = new StreamReader(instream, encoding);
    //返回結果網頁(html)代碼
    string content = sr.ReadToEnd();
    string err = string.Empty;
    Response.Write(content);
    return content;
  }
  catch (Exception ex)
  {
    string err = ex.Message;
    return string.Empty;
  }
}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何利用.NET號開發微信公眾號創建自定義菜單”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳山县| 长宁区| 巴楚县| 阿拉尔市| 桂林市| 斗六市| 中西区| 周口市| 濉溪县| 缙云县| 双桥区| 庐江县| 壶关县| 额济纳旗| 三河市| 洪雅县| 武城县| 景泰县| 昌都县| 柳林县| 湛江市| 文化| 河南省| 苏尼特右旗| 西峡县| 札达县| 察哈| 鹤岗市| 鞍山市| 吴江市| 铅山县| 华蓥市| 平凉市| 天柱县| 泾阳县| 临潭县| 遂宁市| 红原县| 嵊泗县| 隆化县| 博罗县|