微信集团号的通信录管理支出之部门管理

By admin in 亚洲必赢app在哪下载 on 2019年1月22日

 前边一篇随笔集团号的局地基础信息,以及介绍怎么样安插公司号的回调格局已毕和商店号服务器实行交流的桥梁。本篇首要依然三番五次介绍集团号的支出工作的开展,介绍微信公司号通信录管理支出功用,介绍其中社团单位内部如何收获和治本部门的信息等内容。

 1、公司团体的始建和配备

第一咱们得以在公司号的治本后台里面创制一个团协会机关,里面创造一些机构和人口列表,方便大家付出和动用。

比如制造一个新德里爱奇迪的根结构,然后在里面在制造一些公司单位,如下图所示。

图片 1

下一场给协会结构根节点“利雅得爱奇迪”增添一个大班权限,未来再开发接口里面也就可以应用那么些管理员所属的权限Secret值举办调用了。

图片 2

CorpID是公司号的标识,每个集团号具备一个唯一的CorpID;Secret是管理组凭证密钥。
系统管理员可由此管理端的权柄管理效率创立管理组,分配管理组对运用、通信录、接口的走访权限。已毕后,管理组即可得到唯一的secret。系统管理员可因而权限管理查看所有管理组的secret,其余管理员可通过安装中的开发者凭据查看。

本人的商号号的主创者和“圣菲波哥大爱奇迪”社团布局的总指挥是见仁见智的,由于Secret是管理组凭证密钥,因而管理者负责不一致的团体机关管理以来,自己的管理Secret值可能就差距了。假设我们要求调用接口,就要求用到这几个属于自己权力级其余Secret值,如下图所示。

图片 3

 借使不是店铺号的创制者,那么可能无法修改里面的局地权力分配,只能够查看。

图片 4

2、API访问的大局唯一票据AccessToken的得到

和民众号一致,大家调用公司号API的首先步也是索要先获得访问的票子AccessToken。那个单子是全局性的,有肯定的时效和成效控制,因而需求适当的展开缓存,不可能每一遍调用都去刷新获取。

供销社号获取访问票据的紧要性的逻辑代码如下所示,其紧要的就是索要选拔管理者的Secret值去得到相应的口令,那样它就可以领略管理的是可怜协会结构的了。

        /// <summary>
        /// 获取每次操作微信API的Token访问令牌
        /// </summary>
        /// <param name="corpid">企业Id</param>
        /// <param name="corpsecret">管理组的凭证密钥</param>
        /// <returns></returns>
        public string GetAccessTokenNoCache(string corpid, string corpsecret)
        {
            var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}",
                                    corpid, corpsecret);

            HttpHelper helper = new HttpHelper();
            string result = helper.GetHtml(url);
            string regex = "\"access_token\":\"(?<token>.*?)\"";

            string token = CRegex.GetText(result, regex, "token");
            return token;
        }

微信集团号的验证如下所示:

当公司应用调用集团号接口时,公司号后台为依照这一次访问的AccessToken,校验访问的合法性以及所对应的管理组的管理权限以回到相应的结果。

*注:您应有不假思索配置管理组的权力,够用即好,权限过大会扩大误操作可能性及新闻安全隐患。*

AccessToken是商店号的全局唯一票据,调用接口时需指导AccessToken。AccessToken须求用CorpIDSecret来换取,差其他Secret会再次来到分歧的AccessToken。正常处境下AccessToken有效期为7200秒,有效期内再度获取重临相同结果,并活动续期。由于得到access_token的api调用次数相当简单,提出集团全局存储与更新access_token,频仍刷新access_token会造成api调用受限,影响自己业务

 

2、通讯录管理之部门新闻的维护

有了第四节里面的拜会票据,我们就可以使用API来做过多作业了,包蕴集团结构的获取、创造、删除等等作用。

创办机关的法定接口定义如下所示。

  • 请求表明

Https请求格局: POST

https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token=ACCESS_TOKEN

伸手包结构体为:

{
   "name": "邮箱产品组",
   "parentid": "1"
}
  • 参数表达
参数 必须 说明
access_token 调用接口凭证
name 部门名称。长度限制为1~64个字符
parentid 父亲部门id。根部门id为1

 

  • 回来结果

{
   "errcode": 0,
   "errmsg": "created",
   "id": 2
}

根据地点的有些近乎的接口定义表达,大家先来定义下协会部门部门数据的护卫接口,然后在逐步落实和调用。

        #region 部门管理
        /// <summary>
        /// 创建部门。
        /// 管理员须拥有“操作通讯录”的接口权限,以及父部门的管理权限。
        /// </summary>
        CorpDeptCreateJson CreateDept(string accessToken, string name, string parentId);

        /// <summary>
        /// 更新部门。
        /// 管理员须拥有“操作通讯录”的接口权限,以及该部门的管理权限。
        /// </summary>
        CommonResult DeleteDept(string accessToken, int id);

        /// <summary>
        /// 删除部门.
        /// 管理员须拥有“操作通讯录”的接口权限,以及该部门的管理权限。
        /// </summary>
        CorpDeptListJson ListDept(string accessToken);

        /// <summary>
        /// 获取部门列表.
        /// 管理员须拥有’获取部门列表’的接口权限,以及对部门的查看权限。
        /// </summary>
        CommonResult UpdateDept(string accessToken, int id, string name); 
        #endregion

如创制单位的接口落成如下所示,紧要就是构建URL和POST的数据包,然后统一调用并赢得重返数据,转换为实际的Json对象实体即可。其余接口的兑现格局接近,不在赘述。

        /// <summary>
        /// 创建部门。
        /// 管理员须拥有“操作通讯录”的接口权限,以及父部门的管理权限。
        /// </summary>
        public CorpDeptCreateJson CreateDept(string accessToken, string name, string parentId)
        {
            string urlFormat = "https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token={0}";
            var data = new
            {
                name = name,
                parentId = parentId
            };
            var url = string.Format(urlFormat, accessToken);
            var postData = data.ToJson();

            CorpDeptCreateJson result = CorpJsonHelper<CorpDeptCreateJson>.ConvertJson(url, postData);
            return result;
        }

CorpDeptCreateJson
对象实体类的定义如下所示,我们重点是依据重回结果开展定义的。

    /// <summary>
    /// 创建部门的返回结果
    /// </summary>
    public class CorpDeptCreateJson : BaseJsonResult
    {
        /// <summary>
        /// 返回的错误消息
        /// </summary>
        public CorpReturnCode errcode { get; set; }

        /// <summary>
        /// 对返回码的文本描述内容
        /// </summary>
        public string errmsg { get; set; }

        /// <summary>
        /// 创建的部门id。
        /// </summary>
        public int id { get; set; }
    }

 

 3、部门管理的API调用

 下边小节介绍了怎么封装部门管理的API,那么大家封装好了相应的接口和接口达成,怎么着在事实上条件之中进行调用处理的吧,为了便于我创立一个小的Winform程序来测试对应API的效益,如下所示。

图片 5

上边我们来介绍一下调用的代码和功力展示。

        private void btnCreateDeleteDept_Click(object sender, EventArgs e)
        {
            ICorpAddressBookApi bll = new CorpAddressBookApi();
            string name = "测试部门";
            CorpDeptCreateJson json = bll.CreateDept(token, name, "2");
            if (json != null)
            {
                Console.WriteLine("创建了部门:{0}, ID:{1}", name, json.id);

                //更新部门信息
                name = "测试部门修改名称";
                CommonResult result = bll.UpdateDept(token, json.id, name);
                if(result != null)
                {
                    Console.WriteLine("修改部门名称:{0} {1}", (result.Success ? "成功" : "失败"), result.ErrorMessage);
                }

                //删除部门
                result = bll.DeleteDept(token, json.id);
                if (result != null)
                {
                    Console.WriteLine("删除部门名称:{0} {1}", (result.Success ? "成功" : "失败"), result.ErrorMessage);
                }
            }

        }

        /// <summary>
        /// 获取部门列表
        /// </summary>
        private void btnListDept_Click(object sender, EventArgs e)
        {
            ICorpAddressBookApi bll = new CorpAddressBookApi();
            CorpDeptListJson list = bll.ListDept(token);
            foreach (CorpDeptJson info in list.department)
            {
                string tips = string.Format("{0}:{1}", info.name, info.id);
                Console.WriteLine(tips);
            }
        }

图片 6

 

 

万一对那一个《C#支付微信门户及使用》体系感兴趣,可以关切自身的任何小说,种类小说如下所示:

C#支出微信门户及使用(25)-微信集团号的客户端管住功效

C#支付微信门户及运用(24)-微信小店货架音讯保管

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

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

C#支出微信门户及利用(21)-微信公司号的音讯和事件的吸收处理及解密 

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)–初叶利用微信接口

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 亚洲必赢app官方下载 版权所有