本篇内容主要讲解“C#怎么实现微信企业号的菜单管理 ”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#怎么实现微信企业号的菜单管理 ”吧!
金凤ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
菜单在很多情况下,能够给我们提供一个快速入口,也可以用来获取用户信息的主要入口,通过OAuth3验证接口,以及自定义的重定向菜单,我们就可以获取对应的用户ID,然后进一步获取到用户的相关数据,可以显示给客户。
1、菜单的总体介绍
菜单的事件处理如下所示,包括了单击和跳转两个操作,未来企业号可能会增加一些和公众号一样的扫码操作,拍照操作等功能的,目前只有两个。

官方的菜单定义接口包含了下面三种操作,菜单创建、列表获取和菜单删除,这点和公众号操作几乎一样了。

2、菜单的实体类定义和接口定义处理
我们定义菜单,包括定义它的一些属性,包含有name, type, key,url,以及一个指向自身引用的子菜单引用,因此菜单就可以循环构造多个层次,虽然严格意义上来讲,企业号的菜单和公众号菜单一样,一级三个,二级最多五个,而且没有三级菜单了。
实体类的UML图示如下所示。

菜单管理的创建操作,官方定义如下所示。
- 请求说明 
Https请求方式: POST
https://qyapi.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN&agentid=1
请求包如下:
{
   "button":[
       {	
           "type":"click",
           "name":"今日歌曲",
           "key":"V1001_TODAY_MUSIC"
       },
       {
           "name":"菜单",
           "sub_button":[
               {
                   "type":"view",
                   "name":"搜索",
                   "url":"http://www.soso.com/"
               },
               {
                   "type":"click",
                   "name":"赞一下我们",
                   "key":"V1001_GOOD"
               }
           ]
      }
   ]
}- 参数说明 
| 参数 | 必须 | 说明 | 
|---|---|---|
| access_token | 是 | 调用接口凭证 | 
| agentid | 是 | 企业应用的id,整型。可在应用的设置页面查看 | 
| button | 是 | 一级菜单数组,个数应为1~3个 | 
| sub_button | 否 | 二级菜单数组,个数应为1~5个 | 
| type | 是 | 菜单的响应动作类型,目前有click、view两种类型 | 
| name | 是 | 菜单标题,不超过16个字节,子菜单不超过40个字节 | 
| key | click类型必须 | 菜单KEY值,用于消息接口推送,不超过128字节 | 
| url | view类型必须 | 网页链接,员工点击菜单可打开链接,不超过256字节 | 
- 权限说明 
管理员须拥有应用的管理权限,并且应用必须设置在回调模式。
返回结果
{
   "errcode":0,
   "errmsg":"ok"
}根据上面官方的定义语义,我们菜单管理的C#管理接口定义如下所示。
////// 企业号菜单管理接口定义 /// public interface ICorpMenuApi { ////// 获取菜单数据 /// /// 调用接口凭证 ///MenuListJson GetMenu(string accessToken, string agentid); /// /// 创建菜单 /// /// 调用接口凭证 /// 菜单对象 ///CommonResult CreateMenu(string accessToken, MenuListJson menuJson, string agentid); /// /// 删除菜单 /// /// 调用接口凭证 ///CommonResult DeleteMenu(string accessToken, string agentid); } 
我们以创建菜单的实现为例来介绍微信企业号菜单的操作,其他的操作类似处理,都是返回一个公共的消息类,方便处理和读取,代码如下所示。
////// 创建菜单 /// /// 调用接口凭证 /// 菜单对象 ///public CommonResult CreateMenu(string accessToken, MenuListJson menuJson, string agentid) { var url = string.Format("http://www.php.cn/{0}&agentid={1}", accessToken, agentid); string postData = menuJson.ToJson(); return Helper.GetCorpExecuteResult(url, postData); } 
3、企业号菜单管理接口的调用和处理效果
调用的代码和效果图如下所示。
        private void btnMenuCreate_Click(object sender, EventArgs e)
        {
            MenuJson productInfo = new MenuJson("产品介绍", new MenuJson[] { 
                new MenuJson("软件产品介绍", ButtonType.click, "event-software")
                , new MenuJson("框架源码产品", ButtonType.click, "event-source")
                , new MenuJson("软件定制开发", ButtonType.click, "event-develop")
            });
            MenuJson frameworkInfo = new MenuJson("框架产品", new MenuJson[] { 
                new MenuJson("Win开发框架", ButtonType.click, "win"),                new MenuJson("WCF开发框架", ButtonType.click, "wcf"),                new MenuJson("混合式框架", ButtonType.click, "mix"), 
                new MenuJson("Web开发框架", ButtonType.click, "web")
                ,new MenuJson("代码生成工具", ButtonType.click, "database2sharp")
            });
            MenuJson relatedInfo = new MenuJson("相关链接", new MenuJson[] { 
                new MenuJson("公司介绍", ButtonType.click, "event_company"),                new MenuJson("官方网站", ButtonType.view, "http://www.php.cn/"),                new MenuJson("联系我们", ButtonType.click, "event_contact"),                new MenuJson("应答系统", ButtonType.click, "set-1"),    
                new MenuJson("发邮件", ButtonType.view, "http://www.php.cn/")
            });
            MenuListJson menuJson = new MenuListJson();
            menuJson.button.AddRange(new MenuJson[] { productInfo, frameworkInfo, relatedInfo });            //Console.WriteLine(menuJson.ToJson());
            if (MessageUtil.ShowYesNoAndWarning("您确认要创建菜单吗") == System.Windows.Forms.DialogResult.Yes)
            {
                ICorpMenuApi bll = new CorpMenuApi(); 
                CommonResult result = bll.CreateMenu(token, menuJson, agentid);
                Console.WriteLine("创建菜单:" + (result.Success ? "成功" : "失败:" + result.ErrorMessage));
            }
        }        private void btnMenuGet_Click(object sender, EventArgs e)
        {
            ICorpMenuApi bll = new CorpMenuApi();
            MenuListJson menu = bll.GetMenu(token, agentid);            if (menu != null)
            {
                Console.WriteLine(menu.ToJson());
            }
        }调用代码的测试输出如下所示。

到此,相信大家对“C#怎么实现微信企业号的菜单管理 ”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
本文名称:C#怎么实现微信企业号的菜单管理
标题网址:http://www.scyingshan.cn/article/ghhecs.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 