微信公司号的菜谱管理

前方几篇陆续介绍了诸多微信公司号的有关操作,公司号和民众号一致都可以自定义菜单,因而他们也得以通过API举行菜单的创设、获取列表、删除的操作,因而本篇继续深究这些主体,介绍集团号的菜系管理操作。

食谱在众多状态下,可以给大家提供一个神速入口,也得以用来拿到用户音信的第一输入,通过OAuth2验证接口,以及自定义的重定向菜单,我们就可以取得相应的用户ID,然后一发赢得到用户的连带数据,可以展现给客户。

1、菜单的完全介绍

食谱的事件处理如下所示,包括了单击和跳转多少个操作,未来集团号可能会大增一些和民众号一致的扫码操作,拍照操作等效用的,方今只有四个。

必发bifa88手机客服端 1

官方的食谱定义接口包含了下面三种操作,菜单创设、列表获取和菜单删除,那一点和公众号操作几乎如出一辙了。

必发bifa88手机客服端 2

 

2、菜单的实体类定义和接口定义处理

俺们定义菜单,包括定义它的局部性能,包含有name, type,
key,url,以及一个针对性自身引用的子菜单引用,因此菜单就可以循环构造多少个层次,固然严苛意义上来讲,公司号的菜系和群众号菜单一样,一流五个,二级最多两个,而且从不三级菜单了。

实体类的UML图示如下所示。

必发bifa88手机客服端 3

菜单管理的创设操作,官方概念如下所示。

  • 请求表达

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#管制接口定义如下所示。

    /// <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());
            }
        }

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

必发bifa88手机客服端 4

 

假定对这一个《C#付出微信门户及应用》类别感兴趣,能够关注本身的其余著作,系列小说如下所示:

C#付出微信门户及使用(25)-微信公司号的客户端管住功用

C#支出微信门户及运用(24)-微信小店货架消息保管

C#开发微信门户及使用(23)-微信小店商品管理接口的包装和测试

C#付出微信门户及运用(22)-微信小店的开发和接纳

C#支出微信门户及应用(21)-微信公司号的信息和事件的收纳处理及解密必发bifa88手机客服端, 

C#支付微信门户及采用(20)-微信集团号的菜谱管理

C#开发微信门户及利用(19)-微信公司号的音信发送(文本、图片、文件、语音、录像、图文信息等)

C#开发微信门户及应用(18)-微信集团号的通讯录管理支付之成员管理

C#付出微信门户及拔取(17)-微信公司号的通讯录管理支出之部门管理

C#支出微信门户及运用(16)-微信集团号的配备和拔取

C#支付微信门户及应用(15)-微信菜单扩展扫一扫、发图片、发地理地点效能

 C#支付微信门户及拔取(14)-在微信菜单中行使重定向获取用户数据

C#开发微信门户及利用(13)-使用地理地点扩充相关应用

C#支出微信门户及采用(12)-使用语音处理

C#开发微信门户及利用(11)–微信菜单的有余表现形式介绍

C#开发微信门户及使用(10)–在保管序列中齐声微信用户分组音信

C#付出微信门户及运用(9)-微信门户菜单管理及提交到微信服务器

C#支出微信门户及应用(8)-微信门户应用管理系列效用介绍

C#支付微信门户及采用(7)-微信多客服功能及支出集成

C#开发微信门户及利用(6)–微信门户菜单的管制操作

C#支出微信门户及使用(5)–用户分组音讯保管

C#支出微信门户及运用(4)–关注用户列表及详细音讯管理

C#支付微信门户及利用(3)–文本信息和图文消息的作答

C#开发微信门户及使用(2)–微信信息的拍卖和回复

C#付出微信门户及利用(1)–起先应用微信接口

 

相关文章