Heim > WeChat-Applet > WeChat-Entwicklung > C#-Entwicklung des WeChat-Portals und Anwendung der WeChat-Unternehmenskonto-Adressbuchverwaltungsentwicklung und Mitgliederverwaltung

C#-Entwicklung des WeChat-Portals und Anwendung der WeChat-Unternehmenskonto-Adressbuchverwaltungsentwicklung und Mitgliederverwaltung

高洛峰
Freigeben: 2017-03-02 09:41:01
Original
3194 Leute haben es durchsucht

1. Mitgliedererstellungsvorgang

Der Einfachheit halber können wir eine Abteilungsorganisationsstruktur erstellen, die eine Voraussetzung für die Entwicklung ist, da unsere Adressbuchverwaltung ebenfalls auf einer Organisationsstruktur basiert, wie oben Die in diesem Artikel vorgestellte Ebene der Organisationsstruktur ist dieselbe. Hier erstelle ich eine Stammstruktur von Guangzhou Aiqidi und erstelle dann darin einige Organisationsstrukturen, wie in der folgenden Abbildung dargestellt.

C#-Entwicklung des WeChat-Portals und Anwendung der WeChat-Unternehmenskonto-Adressbuchverwaltungsentwicklung und Mitgliederverwaltung

Sie können Personen über funktionale Vorgänge im Hintergrund hinzufügen. In diesem Artikel wird hauptsächlich beschrieben, wie die WeChat Enterprise Account API für Personalverwaltungsvorgänge aufgerufen wird.

Die API-Definition des Erstellers lautet wie folgt.

  • Anweisungen anfordern

Https-Anfragemethode: POST

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

Die Anforderungspaketstruktur ist:

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

参数 必须 说明
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 微信号。企业内必须唯一
  • Berechtigungsbeschreibung

Der Administrator muss über die Schnittstellenberechtigung „Adressbuch bedienen“ und die Verwaltungsberechtigung der angegebenen Abteilung verfügen.

  • Ergebnis zurückgeben

{
   "errcode": 0,
   "errmsg": "created"
}
Nach dem Login kopieren

In C# müssen wir die entsprechende Schnittstelle definieren und dann die entsprechenden Übertragungsentitätsinformationen nach Bedarf erstellen .

Hier habe ich alle Schnittstellen für die Personalverwaltung definiert. Die Schnittstellendefinitionen sind wie folgt.

        #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
Nach dem Login kopieren

Erstellen Sie dann ein CorpUserJson-Entitätsobjekt, das Personalinformationen basierend auf der Informationsdefinition enthält. Der Implementierungsoperationscode zum Erstellen von Personal lautet wie folgt.

        /// <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);
        }
Nach dem Login kopieren

2. Aktualisierungsvorgang für Mitglieder

Aktualisierungsvorgang für Mitglieder Der Datenaktualisierungsvorgang ähnelt dem Erstellungsvorgang und seine Unternehmensnummer ist wie folgt definiert.

  • Anweisungen anfordern

Https-Anfragemethode: POST

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

Das Beispiel für ein Anforderungspaket lautet wie folgt (wenn ein nicht erforderliches Feld nicht angegeben wird, wird der vorherige Einstellungswert des Felds nicht aktualisiert):

{
   "userid": "zhangsan",
   "name": "李四",
   "department": [1],
   "position": "后台工程师",
   "mobile": "15913215421",
   "gender": 1,
   "tel": "62394",
   "email": "zhangsan@gzdev.com",
   "weixinid": "lisifordev",
   "enable": 1
}
Nach dem Login kopieren

Da seine Betriebsdaten ähnlich sind, ist auch sein Implementierungscode ähnlich, wie unten gezeigt.

        /// <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);
        }
Nach dem Login kopieren

3. Löschung von Mitgliedern, Erwerb von Mitgliedern, Erfassungsvorgänge von Abteilungsmitgliedern

Diese Vorgänge ähneln den oben genannten und werden nicht im Detail beschrieben. Die Hauptsache besteht darin, die entsprechenden Rückgabedateninformationen nach Bedarf zu definieren , und analysieren Sie dann die Json-Daten.

1) Die Definition der Löschperson lautet wie folgt:

  • Anleitung anfordern

Https-Anfragemethode: GET

https://qyapi.weixin.qq.com/cgi-bin/user/delete?access_token=ACCESS_TOKEN&userid=lisi

  • Parameterbeschreibung

参数 必须 说明
access_token 调用接口凭证
userid 员工UserID。对应管理端的帐号
  • 返回结果

{
   "errcode": 0,
   "errmsg": "deleted"
}
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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": "李四"
           }
     ]
}
Nach dem Login kopieren

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

    /// <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>
Nach dem Login kopieren

 

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>
Nach dem Login kopieren

C#-Entwicklung des WeChat-Portals und Anwendung der WeChat-Unternehmenskonto-Adressbuchverwaltungsentwicklung und Mitgliederverwaltung

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

        /// <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);
                }
            }
        }
Nach dem Login kopieren

 

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

更多C#-Entwicklung des WeChat-Portals und Anwendung der WeChat-Unternehmenskonto-Adressbuchverwaltungsentwicklung und Mitgliederverwaltung相关文章请关注PHP中文网!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage