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

 前边一篇散文集团号的有的基础音信,以及介绍怎么着安插集团号的回调形式贯彻和公司号服务器进行交流的桥梁。本篇主要仍旧继续介绍集团号的支出工作的进展,介绍微信公司号通讯录管理支付效益,介绍其中协会部门内部怎么样赢得和治本机关的音讯等内容。

 1、集团社团的创始和布署

第一大家得以在铺子号的管制后台里面创造一个团队机关,里面创制一些机关和人口列表,方便我们开发和应用。

譬如说创立一个巴塞罗那爱奇迪的根结构,然后在其间在成立一些集体部门,如下图所示。

bifa365必发 1

接下来给团队结构根节点“圣菲波哥大爱奇迪”扩大一个总指挥权限,将来再支付接口里面也就足以行使这几个管理员所属的权柄Secret值举行调用了。

bifa365必发 2

CorpID是集团号的标识,每种集团号具备一个唯一的CorpID;Secret是管理组凭证密钥。
系统管理员可由此管理端的权杖管理作用创造管理组,分配管理组对应用、通信录、接口的拜会权限。完毕后,管理组即可获得唯一的secret。系统管理员可透过权限管理查看所有管理组的secret,其他管理员可通过安装中的开发者凭据查看。

本人的营业所号的创造人和“都柏林爱奇迪”社团布局的管理人是例外的,由于Secret是管理组凭证密钥,因而管理者负责不相同的团伙机构管理以来,自身的军事管制Secret值只怕就不一致了。要是大家要求调用接口,就需求用到那些属于本人权力级其余Secret值,如下图所示。

bifa365必发 3

 借使不是集团号的创办人,那么或许无法修改里面的一些权力分配,只可以查看。

bifa365必发 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必要用bifa365必发,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的听从,如下所示。

bifa365必发 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);
            }
        }

bifa365必发 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)–早先利用微信接口

 

发表评论

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