温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何利用.NET号开发微信公众号创建自定义菜单

发布时间:2021-03-15 14:54:43 来源:亿速云 阅读:165 作者:小新 栏目:移动开发

这篇文章主要介绍了如何利用.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