上一篇文章《微信企业号的通讯录管理开发之部门管理》介绍了通讯录部的相关运营管理。通讯录管理包括三个部分:部门管理、成员管理、标签管理。本文主要介绍成员管理操作,包括部门成员的创建、删除、更新、获取、获取。1、成员创建操作为了方便,我们可以创建部门组织架构,这是开发的前提,因为我们的通讯录管理也是基于组织架构的,就像上一篇介绍的组织架构层级。这里我创建一个广州爱奇地的根结构,然后在里面创建一些组织,如下图所示。在后台可以通过功能操作添加人员。本文主要介绍如何调用微信企业号API进行人员管理操作。创建人的API定义如下。请求说明https请求方式:POSThttps://qyapi.weixin.qq.com/cgi-bin/user/create?access_token=ACCESS_TOKEN请求包结构为:{"userid":"zhangsan","name":"张三","部门":[1,2],"职位":"产品经理","手机":"15913215421","性别":1,"电话":"62394","邮箱":"zhangsan@gzdev.com","weixinid":"zhangsan4dev"}参数说明该参数必须指明access_token为调用接口凭证,userid为员工UserID。管理端对应的账号必须在企业注册。长度为1~64个字符。name是成员名称。长度为1到64个字符。department否成员所属部门的ID列表。需要注意的是,每个部门的直属员工上限为1000个职位无职位信息。长度为0~64个字符mobile否手机号码。企业内必须是***,mobile/weixinid/email不能同时为空genderNoGender。gender=0表示男性,=1表示女性。默认gender=0tel否办公电话。长度为0~64个字符email否Email地址。长度为0~64个字符。must***weixinid企业内无微信账号。企业必须***权限说明管理员必须有“操作通讯录”的界面权限和指定部门的管理权限。Returnresult{"errcode":0,"errmsg":"created"}在C#中,我们需要定义相应的接口,然后根据需要构造相应的传输实体信息。这里我定义了人员管理的所有接口,接口定义如下。#大区部门成员管理//////创建成员///CommonResultCreateUser(stringaccessToken,CorpUserJsonuser);//////更新成员///CommonResultUpdateUser(stringaccessToken,CorpUserUpdateJsonuser);//////删除成员///CommonResultDeleteUser(stringaccessToken,stringuserid);//////根据会员id获取会员信息///summary>CorpUserGetJsonGetUser(stringaccessToken,stringuserid);//////获取部门成员///CorpUserListJsonGetDeptUser(stringaccessToken,intdepartment_id,intfetch_child=0,intstatus=0);#endregion然后根据信息定义,创建一个携带人员信息的CorpUserJson实体对象,创建人员的实现操作代码如下。//////创建会员///publicCommonResultCreateUser(stringaccessToken,CorpUserJsonuser){stringurlFormat="https://qyapi.weixin.qq.com/cgi-bin/user/create?access_token={0}”;vardata=new{userid=user.userid,name=user.name,department=user.department,position=user.position,mobile=user.mobile,gender=user.gender,tel=user.tel,email=user.邮箱,weixinid=user.weixinid};varurl=string.Format(urlFormat,accessToken);varpostData=data.ToJson();returnHelper.GetCorpExecuteResult(url,postData);}2。成员更新操作member的数据更新和创建操作类似,其企业ID定义如下。请求说明https请求方式:POSThttps://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}由于其运行数据相似,其实现代码类似,如下图。//////更新成员///publicCommonResultUpdateUser(stringaccessToken,CorpUserUpdateJsonuser){stringurlFormat="https://qyapi.weixin.qq.com/cgi-bin/user/update?access_token={0}”;//stringpostData=user.ToJson();vardata=new{userid=user.userid,name=user.name,department=user.department,position=user.position,mobile=user.mobile,gender=user.gender,tel=user.tel,email=user.邮箱,weixinid=user.weixinid,enable=user.enable};varurl=string.Format(urlFormat,accessToken);varpostData=data.ToJson();returnHelper.GetCorpExecuteResult(url,postData);}3。删除成员、获取成员、获取部门成员的操作与上述操作类似,不再赘述。主要是根据需要定义他们对应的返回数据信息,然后解析Json数据就可以转换为对应的实体。1)删除人员定义如下:请求说明https请求方式:GEThttps://qyapi.weixin.qq.com/cgi-bin/user/delete?access_token=ACCESS_TOKEN&userid=lisi参数说明参数必须注明access_token为调用接口凭据userid为员工UserID。对应管理账号返回结果{"errcode":0,"errmsg":"deleted"}2)获取会员定义如下:请求说明https请求方式:GEThttps://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&userid=lisi参数说明参数必须指明access_token为调用接口凭证userid为员工UserID返回结果{"errcode":0,"errmsg":"ok","userid":"zhangsan","name":"李四","department":[1,2],"position":"后台工程师","mobile":"15913215421","gender":1,"tel":"62394","email":"zhangsan@gzdev.com","weixinid":"lisifordev","avatar":"http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIEOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0","status":1}3)获取部门成员定义如下:请求说明https请求方式:GEThttps://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=ACCESS_TOKEN&de1&fetch_child=0&status=0参数说明参数必须说明access_token为调用接口凭证department_id为获取的部门idfetch_child1/0:是否递归获取0号子部门下的成员状态获取所有员工,1获取已关注成员列表,2获取禁用成员列表,4获取未关注成员列表状态可叠加权限说明管理员必须有获取部门成员的接口权限和查看权限指定部门权限返回结果{"errcode":0,"errmsg":"ok","userlist":[{"userid":"zhangsan","name":"李四"}]}为此返回值,我们可以define一个实体对象来存储数据。//////获取部门成员返回的数据///publicclassCorpUserListJson:BaseJsonResult{publicCorpUserListJson(){this.userlist=newList();}//////返回的错误信息///publicCorpReturnCodeerrcode{get;set;}//////返回码的文本描述///publicstringerrmsg{get;set;}//////会员列表///publicListuserlist{get;set;}}7.综合示例调用代码以上介绍了一些企业账号接口定义而我的APIC#封装了接口和部分实现代码。实现功能后,我们可以在代码中对其进行测试,确定其是否正常运行。//////人事管理综合操作(创建、修改、信息获取、删除)/////////privatevoidbtnCorpUser_Click(objectsender,EventArgse){CorpUserJsonuser=newCorpUserJson();user.userid="测试";user.name="测试用户";user.department=newList(){2};user.email="test@163.com";ICorpAddressBookApibll=newCorpAddressBookApi();CommonResultresult=bll.CreateUser(token,user);if(result!=null){Console.WriteLine("创建成员:{0}{1}{2}",user.name,(result.Success?"Success":"Failure"),result.ErrorMessage);stringname="修改测试";用户名=名字;CorpUserUpdateJsonuserUpdate=newCorpUserUpdateJson(用户);结果=bll.UpdateUser(令牌,用户更新);if(result!=null){Console.WriteLine("修改名称:{0}{1}{2}",name,(result.Success?""Success":"Failed"),result.ErrorMessage);}CorpUserGetJsonuserGet=bll.GetUser(token,用户.userid);if(userGet!=null){Console.WriteLine("成员名称:{0}({1}{2})",userGet.name,user.userid,user.email);}结果=bll.DeleteUser(token,user.userid);if(result!=null){Console.WriteLine("删除成员:{0}{1}{2}",name,(result.Success?""Success":"Failed"),result.ErrorMessage);}}}获取部门人员的操作代码如下//////获取部门人员///privatevoidbtnCorpUserList_Click(objectsender,EventArgse){intdeptId=1;ICorpAddressBookApibll=newCorpAddressBookApi();CorpUserListJsonresult=bll.GetDeptUser(token,deptId);if(result!=null){foreach(CorpUserSimpleJsoniteminresult.userlist){Console.WriteLine("成员名称:{0}{1}",item.name,item.userid);}}}人事管理比较简单,主要是创建某个部门下的人员,然后在标签中添加相应的人员,基本就这些了,但是必须要保证自己有合适的权限才能操作。文字来自:http://www.cnblogs.com/wuhuacong/p/3995484.html