c# 微信公众号开发之自定义菜单栏

在微信公众号开启了第三方服务器之后,很多在微信平台上的配置都需要开发者通过微信提供的API,POST请求,将JSON字符串按格式,告知微信服务器

在这里介绍微信公众号的自定义菜单栏开发

先恭迎我们的TX文档       微信公众号——自定义菜单栏

官方文档里说明了一些需要注意的事项

 

在这里 我只使用了几个我业务中用到的类型 哈哈哈 本来在考虑要不要加在后台上,后来想想反正他们有事都找自己,直接写了一个get接口 要删要改,调接口

建立了一个菜单栏类

public class MenuModel
    {
        public MenuModel(string name = "", string type = "", string url = "", string key = "", string pagepath = "", string appid = "")
        {
            Sub_Button = new List<MenuModel>();
            if (name != "")
            {
                Name = name;
            }
            if (type != "")
            {
                Type = type;
            }
            if (url != "")
            {
                Url = url;
            }
            if (key != "")
            {
                Key = key;
            }
            if (pagepath != "")
            {
                Pagepath = pagepath;
            }
            if (appid != "")
            {
                Appid = appid;
            }
        }
      
### 使用 C# 实现微信公众号自定义菜单 为了在 C# 中为微信公众号创建自定义菜单开发者需遵循特定流程并利用相应 API 接口。此过程涉及获取访问令牌、构建菜单结构以及通过 HTTP 请求提交至微信服务器。 #### 获取 Access Token Access Token 是调用微信接口的关键凭证之一。应用应定期请求以保持有效状态。通常情况下,该 token 的有效期为 7200 秒 (即两个小时),因此建议设置定时器自动刷新[^1]。 ```csharp using System; using RestSharp; public class WeChatApiHelper { private static string GetAccessToken(string appId, string appSecret) { var client = new RestClient($"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appId}&secret={appSecret}"); var request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request); dynamic data = Newtonsoft.Json.JsonConvert.DeserializeObject(response.Content); return data.access_token; } } ``` #### 构建菜单 JSON 数据 根据官方文档说明,菜单数据采用 JSON 格式表示。下面是一个简单例子展示如何构造包含按钮的菜单对象: ```json { "button":[ { "type":"click", "name":"今日歌曲", "key":"V1001_TODAY_MUSIC" }, { "name":"菜单", "sub_button":[ { "type":"view", "name":"搜索", "url":"http://www.soso.com/" }, { "type":"miniprogram", "name":"wxa", "url":"http://mp.weixin.qq.com", "appid":"wx286b93c14bbf93aa", "pagepath":"/index" }] }] } ``` 上述代码片段展示了两种类型的子级项目:“点击型”(`click`) 和 “视图型” (`view`)[^2]。 #### 发送 POST 请求创建菜单 最后一步就是把准备好的 JSON 字符串作为 body 参数发送到指定 URL 地址完成菜单创建操作。需要注意的是每次更新都会覆盖原有配置;另外,只有认证过的服务号才允许创建复杂多层嵌套形式的菜单项[^3]。 ```csharp private void CreateCustomMenu(string accessToken){ var menuJson = @"{...}"; // 上面提到的有效载荷 var client = new RestClient($"https://api.weixin.qq.com/cgi-bin/menu/create?access_token={accessToken}"); var request = new RestRequest(Method.POST); request.AddParameter("application/json", menuJson, ParameterType.RequestBody); IRestResponse response = client.Execute(request); } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值