微信企业号的菜单管理

作者:   出处:互联网   2015-06-10 17:55:51   阅读:1

前面几篇陆续介绍了很多微信企业号的相关操作,企业号和公众号一样都可以自定义菜单,因此他们也可以通过API进行菜单的创建、获取列表、删除的操作,因此本篇继续探讨这个主体,介绍企业号的菜单管理操作。


AD:

前面几篇陆续介绍了很多微信企业号的相关操作,企业号和公众号一样都可以自定义菜单,因此他们也可以通过API进行菜单的创建、获取列表、删除的操作,因此本篇继续探讨这个主体,介绍企业号的菜单管理操作。


菜单在很多情况下,能够给们提供一个快速入口,也可以用来获取用户信息的主要入口,通过OAuth2验证接口,以及自定义的重定向菜单,们就可以获取对应的用户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

参数说明

根据上面官方的定义语义,们菜单管理的C#管理接口定义如下所示。


///  summary  /// 企业号菜单管理接口定义  ///  /summary  public interface ICorpMenuApi  {  ///  summary  /// 获取菜单数据  ///  /summary  ///  param name= accessToken 调用接口凭证 /param  ///  returns /returns  MenuListJson GetMenu(string accessToken, string agentid);  ///  summary  /// 创建菜单  ///  /summary  ///  param name= accessToken 调用接口凭证 /param  ///  param name= menuJson 菜单对象 /param  ///  returns /returns  CommonResult CreateMenu(string accessToken, MenuListJson menuJson, string agentid);  ///  summary  /// 删除菜单  ///  /summary  ///  param name= accessToken 调用接口凭证 /param  ///  returns /returns  CommonResult DeleteMenu(string accessToken, string agentid);  } 

们以创建菜单的实现为例来介绍微信企业号菜单的操作,其他的操作类似处理,都是返回一个公共的消息类,方便处理和读取,代码如下所示。


///  summary  /// 创建菜单  ///  /summary  ///  param name= accessToken 调用接口凭证 /param  ///  param name= menuJson 菜单对象 /param  ///  returns /returns  public CommonResult CreateMenu(string accessToken, MenuListJson menuJson, string agentid)  {  var url = string.Format( https://qyapi.weixin.qq.com/cgi-bin/menu/create?access_token={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.iqidi.com ),  new MenuJson( 联系们 , ButtonType.click,  event_contact ),  new MenuJson( 应答系统 , ButtonType.click,  set-1 ),   new MenuJson( 发邮件 , ButtonType.view,  http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme email=S31yfX15fn8LOjplKCQm )  });  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());  }  } 

调用代码的测试输出如下所示。



原文出自:http://www.cnblogs.com/wuhuacong/p/3995678.html

Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat