微信企业号的通讯录管理开发之成员管理

作者:   出处:互联网   2015-06-10 17:55:52   阅读:2

本篇主要介绍成员的管理操作,包括创建、删除、更新、获取、获取部门成员几个操作要点。


AD:

在上篇随笔《微信企业号的通讯录管理开发之部门管理》介绍了通讯录的部门的相关操作管理,通讯录管理包括部门管理、成员管理、标签管理三个部分,本篇主要介绍成员的管理操作,包括创建、删除、更新、获取、获取部门成员几个操作要点。


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  }  

参数说明


{   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 =  https://qyapi.weixin.qq.com/cgi-bin/user/create?access_token={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 =  https://qyapi.weixin.qq.com/cgi-bin/user/update?access_token={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


参数说明

0获取全部员工,1获取已关注成员列表,2获取禁用成员列表,4获取未关注成员列表。status可叠加


{   errcode : 0,   errmsg :  ok ,   userlist : [  {   userid :  zhangsan ,   name :  李四  }  ]  } 


这个返回值们定义一个实体对象用来存储数据即可。


///  summary  /// 获取部门成员返回的数据  ///  /summary  public class CorpUserListJson : BaseJsonResult  {  public CorpUserListJson()  {  this.userlist = new List CorpUserSimpleJson  }  ///  summary  /// 返回的错误消息  ///  /summary  public CorpReturnCode errcode { get; set; }  ///  summary  /// 对返回码的文本描述内容  ///  /summary  public string errmsg { get; set; }  ///  summary  /// 成员列表  ///  /summary  public List CorpUserSimpleJson  userlist { get; set; }  } 

7、综合例子调用代码

上面介绍了一些企业号的接口定义和对API的C#封装接口和部分实现代码,实现了功能后,们就可以在代码中对它进行测试,确信是否正常使用。


///  summary  /// 人员管理综合性操作(创建、修改、获取信息、删除)  ///  /summary  ///  param name= sender /param  ///  param name= e /param  private void btnCorpUser_Click(object sender, EventArgs e)  {  CorpUserJson user = new CorpUserJson();  user.userid =  test ;  user.name = 测试用户 ;  user.department = new List int (){2};  user.email =  test@163.com ;  ICorpAddressBookApi bll = new CorpAddressBookApi();  CommonResult result = bll.CreateUser(token, user);  if (result != null)  {  Console.WriteLine( 创建成员:{0} {1} {2} , user.name, (result.Success ?  成功  :  失败 ), result.ErrorMessage);  string name =  修改测试 ;  user.name = name;  CorpUserUpdateJson userUpdate = new CorpUserUpdateJson(user);  result = bll.UpdateUser(token, userUpdate);  if (result != null)  {  Console.WriteLine( 修改名称:{0} {1} {2} , name, (result.Success ?  成功  :  失败 ), result.ErrorMessage);  }  CorpUserGetJson userGet = bll.GetUser(token, user.userid);  if (userGet != null)  {  Console.WriteLine( 成员名称:{0} ({1} {2}) , userGet.name, user.userid, user.email);  }  result = bll.DeleteUser(token, user.userid);  if (result != null)  {  Console.WriteLine( 删除成员:{0} {1} {2} , name, (result.Success ?  成功  :  失败 ), result.ErrorMessage);  }  }  } 


获取部门人员的操作代码如下所示。


///  summary  /// 获取部门人员  ///  /summary  private void btnCorpUserList_Click(object sender, EventArgs e)  {  int deptId = 1;  ICorpAddressBookApi bll = new CorpAddressBookApi();  CorpUserListJson result = bll.GetDeptUser(token, deptId);  if (result != null)  {  foreach(CorpUserSimpleJson item in result.userlist)  {  Console.WriteLine( 成员名称:{0} {1} , item.name, item.userid);  }  }  } 

人员的管理,相对来说比较简单,主要是在一定的部门下创建人员,然后也可以给标签增加相应的人员,基本上就是这些了,不过一定需要确保有相应的权限进行操作。


原文出自:http://www.cnblogs.com/wuhuacong/p/3995484.html

Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat