在上篇隨筆《C#開發(fā)微信門戶及應(yīng)用(17)-微信企業(yè)號(hào)的通訊錄管理開發(fā)之部門管理》介紹了通訊錄的部門的相關(guān)操作管理,通訊錄管理包括部門管理、成員管理、標(biāo)籤管理三個(gè)部分,本篇主要介紹成員的管理操作,包括建立、刪除、更新、取得、取得部門成員幾個(gè)操作要點(diǎn)。
1、成員的創(chuàng)建操作
為了方便,我們可以創(chuàng)建一個(gè)部門組織結(jié)構(gòu),這是開發(fā)的前提,因?yàn)槲覀兺ㄓ嶄浌芾?,也是基於一個(gè)組織機(jī)構(gòu)下的,如上篇介紹的組織結(jié)構(gòu)層次一樣。我在這裡創(chuàng)建一個(gè)廣州愛奇迪的根結(jié)構(gòu),然後在其中在創(chuàng)建一些組織機(jī)構(gòu),如下圖所示。
在後臺(tái)可以透過功能操作新增人員,本篇主要介紹如何呼叫微信企業(yè)號(hào)API進(jìn)行人員管理的操作。
創(chuàng)建者的API定義如下圖所示。
請(qǐng)求說明
Https請(qǐng)求方式: POST
https://qyapi.weixin.qq.com/cgi-bin/user/create?opfess_token_ACCSaccTO.
{ ???"userid":?"zhangsan", ???"name":?"張三", ???"department":?[1,?2], ???"position":?"產(chǎn)品經(jīng)理", ???"mobile":?"15913215421", ???"gender":?1, ???"tel":?"62394", ???"email":?"zhangsan@gzdev.com", ???"weixinid":?"zhangsan4dev" }參數(shù)說明
說明 | userid | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
員工UserID。對(duì)應(yīng)管理端的帳號(hào),企業(yè)內(nèi)必須唯一。長度為1~64個(gè)字 | name | ||||||||||||||||||||||||||||||||||
成員名稱。長度為1~64個(gè)字 | department | ||||||||||||||||||||||||||||||||||
成員所屬部門id列表。請(qǐng)注意,各部門的直屬員工上限為1000個(gè) | position | ||||||||||||||||||||||||||||||||||
職位資料。長度為0~64個(gè)字 | mobile | ||||||||||||||||||||||||||||||||||
手機(jī)號(hào)碼。企業(yè)內(nèi)必須唯一,mobile/weixinid/email三者不能同時(shí)為空 | gender | ||||||||||||||||||||||||||||||||||
性別。 gender=0表示男,=1表示女。預(yù)設(shè)gender=0 | tel | ||||||||||||||||||||||||||||||||||
辦公室電話。長度為0~64個(gè)字 | |||||||||||||||||||||||||||||||||||
郵箱。長度為0~64個(gè)字元。企業(yè)內(nèi)必須唯一 | weixinid | ||||||||||||||||||||||||||||||||||
微訊號(hào)。企業(yè)內(nèi)必須唯一 |
管理員須擁有“操作通訊錄”的接口權(quán)限,以及指定部門的管理權(quán)限。
{ ???"errcode":?0, ???"errmsg":?"created" } ?我們?cè)贑#里面,需要定義對(duì)應(yīng)給的接口,然后根據(jù)需要構(gòu)造對(duì)應(yīng)的傳遞實(shí)體信息。 這里我把人員管理的接口全部定義好,接口定義如下所示。 ????????#region?部門成員管理????????///?<summary> ????????///?創(chuàng)建成員????????///?</summary> ????????CommonResult?CreateUser(string?accessToken,?CorpUserJson?user);????????///?<summary> ????????///?更新成員????????///?</summary> ????????CommonResult?UpdateUser(string?accessToken,?CorpUserUpdateJson?user);????????///?<summary> ????????///?刪除成員????????///?</summary> ????????CommonResult?DeleteUser(string?accessToken,?string?userid);????????///?<summary> ????????///?根據(jù)成員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 然后根據(jù)信息定義,創(chuàng)建一個(gè)承載人員信息的CorpUserJson實(shí)體對(duì)象,創(chuàng)建人員的實(shí)現(xiàn)操作代碼如下所示。 ????????///?<summary> ????????///?創(chuàng)建成員????????///?</summary> ????????public?CommonResult?CreateUser(string?accessToken,?CorpUserJson?user) ????????{????????????string?urlFormat?=?"http://ipnx.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、成員的更新操作成員的數(shù)據(jù)更新和創(chuàng)建操作類似,它的企業(yè)號(hào)定義如下所示。
Https請(qǐng)求方式: POST https://qyapi.weixin.qq.com/cgi-bin/user/update?access_token=ACCESS_TOKEN 請(qǐng)求包示例如下(如果非必須的字段未指定,則不更新該字段之前的設(shè)置值): { ???"userid":?"zhangsan", ???"name":?"李四", ???"department":?[1], ???"position":?"后臺(tái)工程師", ???"mobile":?"15913215421", ???"gender":?1, ???"tel":?"62394", ???"email":?"zhangsan@gzdev.com", ???"weixinid":?"lisifordev", ???"enable":?1 } 由于它的操作數(shù)據(jù)類似,因此它的實(shí)現(xiàn)代碼也差不多,如下所示就是。 ????????///?<summary> ????????///?更新成員????????///?</summary> ????????public?CommonResult?UpdateUser(string?accessToken,?CorpUserUpdateJson?user) ????????{????????????string?urlFormat?=?"http://ipnx.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、成員的刪除、成員的獲取、部門成員的獲取操作這些操作和上面的類似,不在贅述,主要就是根據(jù)需要定義他們對(duì)應(yīng)的返回?cái)?shù)據(jù)信息,然后解析Json數(shù)據(jù)即可轉(zhuǎn)換為對(duì)應(yīng)的實(shí)體。 1)刪除人員的定義如下:
Https請(qǐng)求方式: GET https://qyapi.weixin.qq.com/cgi-bin/user/delete?access_token=ACCESS_TOKEN&userid=lisi
{ ???"errcode":?0, ???"errmsg":?"deleted" } 2)成員的獲取定義如下:
Https請(qǐng)求方式: GET https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&userid=lisi
{ ???"errcode":?0, ???"errmsg":?"ok", ???"userid":?"zhangsan", ???"name":?"李四", ???"department":?[1,?2], ???"position":?"后臺(tái)工程師", ???"mobile":?"15913215421", ???"gender":?1, ???"tel":?"62394", ???"email":?"zhangsan@gzdev.com", ???"weixinid":?"lisifordev",?? ???"avatar":?"http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0", ???"status":?1 } 3)部門成員的獲取定義如下:
Https請(qǐng)求方式: GET https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=ACCESS_TOKEN&department_id=1&fetch_child=0&status=0
管理員須擁有’獲取部門成員’的接口權(quán)限,以及指定部門的查看權(quán)限。
{ ???"errcode":?0, ???"errmsg":?"ok", ???"userlist":?[ ???????????{ ??????????????????"userid":?"zhangsan", ??????????????????"name":?"李四" ???????????} ?????] } 這個(gè)返回值我們定義一個(gè)實(shí)體對(duì)象用來存儲(chǔ)數(shù)據(jù)即可。 ????///?<summary> ????///?獲取部門成員返回的數(shù)據(jù)????///?</summary> ????public?class?CorpUserListJson?:?BaseJsonResult ????{????????public?CorpUserListJson() ????????{????????????this.userlist?=?new?List<corpusersimplejson>(); ????????}????????///?<summary> ????????///?返回的錯(cuò)誤消息????????///?</summary> ????????public?CorpReturnCode?errcode?{?get;?set;?}????????///?<summary> ????????///?對(duì)返回碼的文本描述內(nèi)容????????///?</summary> ????????public?string?errmsg?{?get;?set;?}????????///?<summary> ????????///?成員列表????????///?</summary> ????????public?List<corpusersimplejson>?userlist?{?get;?set;?} ????}</corpusersimplejson></corpusersimplejson> ? 7、綜合例子調(diào)用代碼上面介紹了一些企業(yè)號(hào)的接口定義和我對(duì)API的C#封裝接口和部分實(shí)現(xiàn)代碼,實(shí)現(xiàn)了功能后,我們就可以在代碼中對(duì)它進(jìn)行測(cè)試,確信是否正常使用。 ????????///?<summary> ????????///?人員管理綜合性操作(創(chuàng)建、修改、獲取信息、刪除)????????///?</summary> ????????///?<param> ????????///?<param> ????????private?void?btnCorpUser_Click(object?sender,?EventArgs?e) ????????{ ????????????CorpUserJson?user?=?new?CorpUserJson(); ????????????user.userid?=?"test"; ????????????user.name?="測(cè)試用戶"; ????????????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("創(chuàng)建成員:{0}?{1}?{2}",?user.name,?(result.Success???"成功"?:?"失敗"),?result.ErrorMessage);????????????????string?name?=?"修改測(cè)試"; ????????????????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); ????????????????} ????????????} ????????} ? 更多C#開發(fā)微信入口網(wǎng)站及應(yīng)用-微信企業(yè)號(hào)的通訊錄管理開發(fā)之成員管理相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)! |

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

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

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)