搜尋
首頁微信小程式微信開發C#開發微信入口網站及應用-微信企業號的通訊錄管理開發之成員管理

在上篇隨筆《C#開發微信門戶及應用(17)-微信企業號的通訊錄管理開發之部門管理》介紹了通訊錄的部門的相關操作管理,通訊錄管理包括部門管理、成員管理、標籤管理三個部分,本篇主要介紹成員的管理操作,包括建立、刪除、更新、取得、取得部門成員幾個操作要點。

1、成員的創建操作

為了方便,我們可以創建一個部門組織結構,這是開發的前提,因為我們通訊錄管理,也是基於一個組織機構下的,如上篇介紹的組織結構層次一樣。我在這裡創建一個廣州愛奇迪的根結構,然後在其中在創建一些組織機構,如下圖所示。

C#開發微信入口網站及應用-微信企業號的通訊錄管理開發之成員管理

在後台可以透過功能操作新增人員,本篇主要介紹如何呼叫微信企業號API進行人員管理的操作。

創建者的API定義如下圖所示。

  • 請求說明

Https請求方式: POST

https://qyapi.weixin.qq.com/cgi-bin/user/create?opfess_token_ACCSaccTO.

{
   "userid": "zhangsan",
   "name": "张三",
   "department": [1, 2],
   "position": "产品经理",
   "mobile": "15913215421",
   "gender": 1,
   "tel": "62394",
   "email": "zhangsan@gzdev.com",
   "weixinid": "zhangsan4dev"
}

參數說明
參數必須說明是是否否否否否否否
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 部门成员管理        /// <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://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
}

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

        /// <summary>
        /// 更新成员        /// </summary>
        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_child 1/0:是否递归获取子部门下面的成员
status 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; }
    }</corpusersimplejson></corpusersimplejson>

 

7、综合例子调用代码

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

        /// <summary>
        /// 人员管理综合性操作(创建、修改、获取信息、删除)        /// </summary>
        /// <param>
        /// <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);
                }
            }
        }</int>

C#開發微信入口網站及應用-微信企業號的通訊錄管理開發之成員管理

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

        /// <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);
                }
            }
        }

 

更多C#開發微信入口網站及應用-微信企業號的通訊錄管理開發之成員管理相关文章请关注PHP中文网!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具