• Asp.net微信企业号的应用中心功能及菜单功能


    前面几篇陆续介绍了很多微信企业号的相关操作,企业号和公众号一样都可以自定义菜单,因此他们也可以通过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"
                   }
               ]
          }
       ]
    }
    
    • 参数说明
    参数必须说明
    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、微企办公平台实现效果


      转载请注明出处:
    撰写人:黄加林  QQ:1527562807

  • 相关阅读:
    Android比较实用的属性
    软件版本命名规则
    Dhroid框架笔记(DhNet、Adapter)
    Activity对话框
    Dhroid框架笔记(IOC、EventBus)
    Eclipse快捷键
    解析Excel_Jxl
    面试题
    java基础——值传递和应用传递
    java基础——子类继承父类程序执行顺序
  • 原文地址:https://www.cnblogs.com/hjldare/p/5503046.html
Copyright © 2020-2023  润新知