天天看点

C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理

 前面一篇随笔企业号的一些基础信息,以及介绍如何配置企业号的回调方式实现和企业号服务器进行沟通的桥梁。本篇主要还是继续介绍企业号的开发工作的开展,介绍微信企业号通讯录管理开发功能,介绍其中组织机构里面如何获取和管理部门的信息等内容。

首先我们可以在企业号的管理后台里面创建一个组织机构,里面创建一些部门和人员列表,方便我们开发和使用。

例如创建一个广州爱奇迪的根结构,然后在其中在创建一些组织机构,如下图所示。

C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理

然后给组织结构根节点“广州爱奇迪”增加一个管理员权限,以后再开发接口里面也就可以使用这个管理员所属的权限Secret值进行调用了。

C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理

CorpID是企业号的标识,每个企业号拥有一个唯一的CorpID;Secret是管理组凭证密钥。

系统管理员可通过管理端的权限管理功能创建管理组,分配管理组对应用、通讯录、接口的访问权限。完成后,管理组即可获得唯一的secret。系统管理员可通过权限管理查看所有管理组的secret,其他管理员可通过设置中的开发者凭据查看。

我的企业号的创建者和“广州爱奇迪”组织结构的管理员是不同的,由于Secret是管理组凭证密钥,因此管理者负责不同的组织机构管理的话,自己的管理Secret值可能就不同了。如果我们需要调用接口,就需要用到这个属于自己权限级别的Secret值,如下图所示。

C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理

 如果不是企业号的创建者,那么可能不能修改里面的一些权限分配,只能查看。

C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理

和公众号一样,我们调用企业号API的第一步也是需要先获取访问的票据AccessToken。这个票据是全局性的,有一定的时效和频率控制,因此需要适当的进行缓存,不能每次调用都去刷新获取。

企业号获取访问票据的主要的逻辑代码如下所示,其主要的就是需要使用管理者的Secret值去获取对应的口令,这样它就能够知道管理的是那个组织结构的了。

微信企业号的说明如下所示:

当企业应用调用企业号接口时,企业号后台为根据此次访问的AccessToken,校验访问的合法性以及所对应的管理组的管理权限以返回相应的结果。

注:你应该审慎配置管理组的权限,够用即好,权限过大会增加误操作可能性及信息安全隐患。

有了第一节里面的访问票据,我们就可以利用API来做很多事情了,包括组织结构的获取、创建、删除等等功能。

创建部门的官方接口定义如下所示。

请求说明

Https请求方式: POST

<a href="https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token=ACCESS_TOKEN">https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token=ACCESS_TOKEN</a>

请求包结构体为:

参数说明

参数

必须

说明

access_token

调用接口凭证

name

部门名称。长度限制为1~64个字符

parentid

父亲部门id。根部门id为1

返回结果

根据上面的一些类似的接口定义说明,我们先来定义下组织机构部门数据的维护接口,然后在逐步实现和调用。

如创建部门的接口实现如下所示,主要就是构建URL和POST的数据包,然后统一调用并获取返回数据,转换为具体的Json对象实体即可。其他接口的实现方式类似,不在赘述。

CorpDeptCreateJson 对象实体类的定义如下所示,我们主要是根据返回结果进行定义的。

 上面小节介绍了如何封装部门管理的API,那么我们封装好了对应的接口和接口实现,怎么样在实际环境里面进行调用处理的呢,为了方便我创建一个小的Winform程序来测试对应API的功能,如下所示。

C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理

下面我们来介绍一下调用的代码和效果展示。

C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理

如果对这个《C#开发微信门户及应用》系列感兴趣,可以关注我的其他文章,系列随笔如下所示:

<a href="http://www.cnblogs.com/wuhuacong/p/4442683.html">C#开发微信门户及应用(25)-微信企业号的客户端管理功能</a>

<a href="http://www.cnblogs.com/wuhuacong/p/4203869.html">C#开发微信门户及应用(24)-微信小店货架信息管理</a>

<a href="http://www.cnblogs.com/wuhuacong/p/4203139.html">C#开发微信门户及应用(23)-微信小店商品管理接口的封装和测试</a>

<a href="http://www.cnblogs.com/wuhuacong/p/4203050.html">C#开发微信门户及应用(22)-微信小店的开发和使用</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3995678.html">C#开发微信门户及应用(20)-微信企业号的菜单管理</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3995494.html">C#开发微信门户及应用(19)-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3995484.html">C#开发微信门户及应用(18)-微信企业号的通讯录管理开发之成员管理</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3992230.html">C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3991735.html">C#开发微信门户及应用(16)-微信企业号的配置和使用</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3988858.html">C#开发微信门户及应用(15)-微信菜单增加扫一扫、发图片、发地理位置功能</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3756347.html">C#开发微信门户及应用(13)-使用地理位置扩展相关应用</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3753834.html">C#开发微信门户及应用(12)-使用语音处理</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3735739.html">C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3735671.html">C#开发微信门户及应用(10)--在管理系统中同步微信用户分组信息</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3734614.html">C#开发微信门户及应用(9)-微信门户菜单管理及提交到微信服务器</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3733189.html">C#开发微信门户及应用(8)-微信门户应用管理系统功能介绍</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3732902.html">C#开发微信门户及应用(7)-微信多客服功能及开发集成</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3701961.html">C#开发微信门户及应用(6)--微信门户菜单的管理操作</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3695351.html">C#开发微信门户及应用(5)--用户分组信息管理</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3695213.html">C#开发微信门户及应用(4)--关注用户列表及详细信息管理</a>

<a href="http://www.cnblogs.com/wuhuacong/p/3622636.html">C#开发微信门户及应用(3)--文本消息和图文消息的应答</a>