千家信息网

C#如何实现微信企业号的通讯录管理开发之部门管理

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,小编给大家分享一下C#如何实现微信企业号的通讯录管理开发之部门管理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、成员的
千家信息网最后更新 2025年11月07日C#如何实现微信企业号的通讯录管理开发之部门管理

小编给大家分享一下C#如何实现微信企业号的通讯录管理开发之部门管理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

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个字符
email邮箱。长度为0~64个字符。企业内必须唯一
weixinid微信号。企业内必须唯一
  • 权限说明

管理员须拥有"操作通讯录"的接口权限,以及指定部门的管理权限。

  • 返回结果

{   "errcode": 0,   "errmsg": "created"}

我们在C#里面,需要定义对应给的接口,然后根据需要构造对应的传递实体信息。

这里我把人员管理的接口全部定义好,接口定义如下所示。

        #region 部门成员管理        ///         /// 创建成员        ///         CommonResult CreateUser(string accessToken, CorpUserJson user);        ///         /// 更新成员        ///         CommonResult UpdateUser(string accessToken, CorpUserUpdateJson user);        ///         /// 删除成员        ///         CommonResult DeleteUser(string accessToken, string userid);        ///         /// 根据成员id获取成员信息        ///         CorpUserGetJson GetUser(string accessToken, string userid);        ///         /// 获取部门成员        ///         CorpUserListJson GetDeptUser(string accessToken, int department_id, int fetch_child = 0, int status = 0);        #endregion

然后根据信息定义,创建一个承载人员信息的CorpUserJson实体对象,创建人员的实现操作代码如下所示。

        ///         /// 创建成员        ///         public CommonResult CreateUser(string accessToken, CorpUserJson user)        {            string urlFormat = "http://www.php.cn/{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}

由于它的操作数据类似,因此它的实现代码也差不多,如下所示就是。

        ///         /// 更新成员        ///         public CommonResult UpdateUser(string accessToken, CorpUserUpdateJson user)        {            string urlFormat = "http://www.php.cn/{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。对应管理端的帐号
  • 返回结果

{   "errcode": 0,   "errmsg": "deleted"}
2)成员的获取定义如下:
  • 请求说明

Https请求方式: GET

https://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请求方式: GET

https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=ACCESS_TOKEN&department_id=1&fetch_child=0&status=0

  • 参数说明

参数必须说明
access_token调用接口凭证
department_id获取的部门id
fetch_child1/0:是否递归获取子部门下面的成员
status0获取全部员工,1获取已关注成员列表,2获取禁用成员列表,4获取未关注成员列表。status可叠加
  • 权限说明

管理员须拥有'获取部门成员'的接口权限,以及指定部门的查看权限。

  • 返回结果

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

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

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

7、综合例子调用代码

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

        ///         /// 人员管理综合性操作(创建、修改、获取信息、删除)        ///         ///         ///         private void btnCorpUser_Click(object sender, EventArgs e)        {            CorpUserJson user = new CorpUserJson();            user.userid = "test";            user.name ="测试用户";            user.department = new List(){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);                }            }        }

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

        ///         /// 获取部门人员        ///         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);                }            }        }

以上是"C#如何实现微信企业号的通讯录管理开发之部门管理"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

成员 部门 管理 接口 人员 企业 参数 信息 代码 数据 权限 员工 字符 方式 长度 更新 通讯 C# 凭证 名称 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 win7系统服务器管理在哪 怎么计算软件开发工程量 网络安全审查办法实施了吗 互联网初创公司服务器 畅达车联北京网络技术 表格中怎么对比数据库 数据库模型与数据库的关系 移动软件开发方案 有已知ip地址如何连接云服务器 上海昊钺网络技术有限公司 数据库物理结构是什么 tmod卡在发现服务器 互联网科技英语缩写 软件开发高级工程师是什么专业 保障网络安全和数据安全申论范文 网络安全股今日大涨 服务器架构管理系统 大学 网络安全产品 采购 公司网络安全办公室工作计划 jsp服务器有哪些 数据库的岗位需求 青浦区市场软件开发厂家报价 软件开发选pro还是air 国内网络安全企业最新排名 天蚂蚁网络安全 上海宁臣互联网科技公司靠谱么 网络安全保险让企业吃上定心丸 服务器程序运行在系统态 大学 网络安全产品 采购 公司网络安全办公室工作计划
0