Maison > Applet WeChat > Développement WeChat > Développement C# du portail et de l'application WeChat - Gestion des membres de la gestion du carnet d'adresses et développement du compte d'entreprise WeChat

Développement C# du portail et de l'application WeChat - Gestion des membres de la gestion du carnet d'adresses et développement du compte d'entreprise WeChat

高洛峰
Libérer: 2017-02-18 09:33:21
original
1549 Les gens l'ont consulté

Dans l'essai précédent « Développement C# du portail et de l'application WeChat (17) - Gestion du département de gestion du carnet d'adresses et développement du compte d'entreprise WeChat », la gestion des opérations pertinente du département du carnet d'adresses a été présentée. gestion et gestion des membres., gestion des balises en trois parties, cet article présente principalement les opérations de gestion des membres, y compris plusieurs points clés des opérations tels que la création, la suppression, la mise à jour, l'obtention et l'obtention des membres du département.

1. Opération de création de membres

Pour plus de commodité, nous pouvons créer une structure organisationnelle départementale, qui est une condition préalable au développement. Car la gestion de notre carnet d'adresses repose également sur une structure organisationnelle, tout comme le niveau de structure organisationnelle présenté dans l'article précédent. Ici, je crée une structure racine de Guangzhou Aiqidi, puis j'y crée des structures organisationnelles, comme le montre la figure ci-dessous.

Développement C# du portail et de lapplication WeChat - Gestion des membres de la gestion du carnet dadresses et développement du compte dentreprise WeChat

Vous pouvez ajouter des personnes via des opérations fonctionnelles en arrière-plan. Cet article présente principalement comment appeler l'API du compte WeChat Enterprise pour les opérations de gestion du personnel.

La définition API du créateur est la suivante.

  • Instructions de demande

Méthode de demande HTTPS : POST

https://qyapi.weixin.qq. com/cgi-bin/user/create?access_token=ACCESS_TOKEN

La structure du package de requête est :

{
   "userid": "zhangsan",
   "name": "张三",
   "department": [1, 2],
   "position": "产品经理",
   "mobile": "15913215421",
   "gender": 1,
   "tel": "62394",
   "email": "zhangsan@gzdev.com",
   "weixinid": "zhangsan4dev"
}
Copier après la connexion
  • Description du paramètre

参数 必须 说明
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"
}
Copier après la connexion

 我们在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
Copier après la connexion

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

        /// <summary>
        /// 创建成员        /// </summary>
        public CommonResult CreateUser(string accessToken, CorpUserJson user)
        {            string urlFormat = "//m.sbmmt.com/{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);
        }
Copier après la connexion

 

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
}
Copier après la connexion

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

        /// <summary>
        /// 更新成员        /// </summary>
        public CommonResult UpdateUser(string accessToken, CorpUserUpdateJson user)
        {            string urlFormat = "//m.sbmmt.com/{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);
        }
Copier après la connexion

 

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"
}
Copier après la connexion

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
}
Copier après la connexion

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": "李四"
           }
     ]
}
Copier après la connexion

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

    /// <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>
Copier après la connexion

 

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>
Copier après la connexion

Développement C# du portail et de lapplication WeChat - Gestion des membres de la gestion du carnet dadresses et développement du compte dentreprise WeChat

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

        /// <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);
                }
            }
        }
Copier après la connexion

 

更多Développement C# du portail et de lapplication WeChat - Gestion des membres de la gestion du carnet dadresses et développement du compte dentreprise WeChat相关文章请关注PHP中文网!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal