1、成员的创建操作
为了方便,我们可以创建一个部门组织结构,这是开发的前提,因为我们通讯录管理,也是基于一个组织机构下的,如上篇介绍的组织结构层次一样。我这里创建一个广州爱奇迪的根结构,然后在其中在创建一些组织机构,如下图所示。

在后台可以通过功能操作添加人员,本篇主要介绍如何调用微信企业号API进行人员管理的操作。
创建人员的API定义如下所示。
请求说明
Https请求方式: POST
https://qyapi.weixin.qq.com/cgi-bin/user/create?access_token=ACCESS_TOKEN
请求包结构体为:
{
"userid": "zhangsan",
"name": "张三",
"department": [1, 2],
"position": "产品经理",
"mobile": "15913215421",
"gender": 1,
"tel": "62394",
"email": "zhangsan@gzdev.com",
"weixinid": "zhangsan4dev"
}参数说明
| 参数 | 必须 | 说明 |
|---|---|---|
| access_token | 是 | 调用接口凭证 |
| userid | 是 | 员工UserID。对应管理端的帐号,企业内必须唯一。长度为1~64个字符 |
| name | 是 | 成员名称。长度为1~64个字符 |
| department | 否 | 成员所属部门id列表。注意,每个部门的直属员工上限为1000个 |
| position | 否 | 职位信息。长度为0~64个字符 |
| mobile | 否 | 手机号码。企业内必须唯一,mobile/weixinid/email三者不能同时为空 |
| gender | 否 | 性别。gender=0表示男,=1表示女。默认gender=0 |
| tel | 否 | 办公电话。长度为0~64个字符 |
| 否 | 邮箱。长度为0~64个字符。企业内必须唯一 | |
| weixinid | 否 | 微信号。企业内必须唯一 |
权限说明
管理员须拥有“操作通讯录”的接口权限,以及指定部门的管理权限。
返回结果
{
"errcode": 0,
"errmsg": "created"
}我们在C#里面,需要定义对应给的接口,然后根据需要构造对应的传递实体信息。
这里我把人员管理的接口全部定义好,接口定义如下所示。
#region 部门成员管理 /// <summary>
/// 创建成员 /// </summary>
CommonResult CreateUser(string accessToken, CorpUserJson user); /// <summary>
/// 更新成员 /// </summary>
CommonResult UpdateUser(string accessToken, CorpUserUpdateJson user); /// <summary>
/// 删除成员 /// </summary>
CommonResult DeleteUser(string accessToken, string userid); /// <summary>
/// 根据成员id获取成员信息 /// </summary>
CorpUserGetJson GetUser(string accessToken, string userid); /// <summary>
/// 获取部门成员 /// </summary>
CorpUserListJson GetDeptUser(string accessToken, int department_id, int fetch_child = 0, int status = 0); #endregion然后根据信息定义,创建一个承载人员信息的CorpUserJson实体对象,创建人员的实现操作代码如下所示。
/// <summary>
/// 创建成员 /// </summary>
public CommonResult CreateUser(string accessToken, CorpUserJson user)
{ string urlFormat = "http:///{0}"; var data = new
{
userid = user.userid,
name = user.name,
department = user.department,
position = user.position,
mobile = user.mobile,
gender = user.gender,
tel = user.tel,
email = user.email,
weixinid = user.weixinid
}; var url = string.Format(urlFormat, accessToken); var postData = data.ToJson(); return Helper.GetCorpExecuteResult(url, postData);
}
2、成员的更新操作
成员的数据更新和创建操作类似,它的企业号定义如下所示。
请求说明
Https请求方式: POST
https://qyapi.weixin.qq.com/cgi-bin/user/update?access_token=ACCESS_TOKEN
请求包示例如下(如果非必须的字段未指定,则不更新该字段之前的设置值):
{
"userid": "zhangsan",
"name": "李四",
"department": [1],
"position": "后台工程师",
"mobile": "15913215421",
"gender": 1,
"tel": "62394",
"email": "zhangsan@gzdev.com",
"weixinid": "lisifordev",
"enable": 1
}由于它的操作数据类似,因此它的实现代码也差不多,如下所示就是。
/// <summary>
/// 更新成员 /// </summary>
public CommonResult UpdateUser(string accessToken, CorpUserUpdateJson user)
{ string urlFormat = "http:///{0}"; //string postData = user.ToJson();
var data = new
{
userid = user.userid,
name = user.name,
department = user.department,
position = user.position,
mobile = user.mobile,
gender = user.gender,
tel = user.tel,
email = user.email,
weixinid = user.weixinid,
enable = user.enable
}; var url = string.Format(urlFormat, accessToken); var postData = data.ToJson(); return Helper.GetCorpExecuteResult(url, postData);
}
3、成员的删除、成员的获取、部门成员的获取操作
这些操作和上面的类似,不在赘述,主要就是根据需要定义他们对应的返回数据信息,然后解析Json数据即可转换为对应的实体。
1)删除人员的定义如下:
请求说明
Https请求方式: GET
https://qyapi.weixin.qq.com/cgi-bin/user/delete?access_token=ACCESS_TOKEN&userid=lisi
参数说明
| 参数 | 必须 | 说明 |
|---|---|---|
| access_token | 是 | 调用接口凭证 |
| userid | 是 | 员工UserID。对应管理端的帐号 |

