前回のエッセイ「WeChat ポータルとアプリケーションの C# 開発 (17) - アドレス帳管理の部門管理と WeChat エンタープライズ アカウントの開発」では、アドレス帳部門の関連する運用管理には部門管理が含まれると紹介しました。メンバー管理とタグ 管理には 3 つの部分があります。この記事では、部門メンバーの作成、削除、更新、取得、および取得のポイントを含む、メンバーの管理操作を主に紹介します。
前回紹介したように、アドレス帳管理も組織構造に基づいているため、便宜上、開発の前提となる部門別の組織構造を作成できます。記事 組織構造のレベルは同じです。ここでは、次の図に示すように、広州 iQidi のルート構造を作成し、その中にいくつかの組織構造を作成します。
この記事では、主に人事管理操作のために WeChat Enterprise Account API を呼び出す方法をバックグラウンドでの機能操作を通じて追加できます。
クリエイターのAPI定義は以下の通りです。
{ "userid": "zhangsan", "name": "张三", "department": [1, 2], "position": "产品经理", "mobile": "15913215421", "gender": 1, "tel": "62394", "email": "zhangsan@gzdev.com", "weixinid": "zhangsan4dev" }
必須 | 説明 | |
---|---|---|
は | 呼び出しインターフェース認証情報 | |
は、 | 従業員のユーザー ID です。管理端に対応する口座番号は企業内で一意である必要があります。長さは 1 ~ 64 文字です。 | |
は | メンバーの名前です。文字数は1~64文字です | |
No | メンバーが所属する部門IDのリスト。なお、部門ごとの直接従業員の最大数は1,000名です | |
No | ポジション情報。長さは 0 ~ 64 文字です | |
No | 携帯電話番号。企業内で一意である必要があり、モバイル/weixinid/電子メールを同時に空にすることはできません | |
いいえ | 性別。性別=0 は男性、=1 は女性を意味します。デフォルトの性別=0 | |
no | オフィスの電話番号。長さは 0 ~ 64 文字です | |
No | Email。長さは 0 ~ 64 文字です。会社は固有の | |
No | WeChat ID を持っている必要があります。企業内で一意である必要があります |
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
userid | 是 | 员工UserID。对应管理端的帐号 |
返回结果
{ "errcode": 0, "errmsg": "deleted" }
请求说明
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 }
请求说明
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>
上面介绍了一些企业号的接口定义和我对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>
获取部门人员的操作代码如下所示。
/// <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); } } }
更多WeChat ポータルとアプリケーションの C# 開発 - メンバー管理、アドレス帳管理、WeChat エンタープライズ アカウントの開発相关文章请关注PHP中文网!