国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
?1、企業(yè)組織的創(chuàng)建和配置
2、API訪(fǎng)問(wèn)的全局唯一票據(jù)AccessToken的獲取
2、通訊錄管理之部門(mén)信息的維護(hù)
?3、部門(mén)管理的API調(diào)用
首頁(yè) 微信小程序 微信開(kāi)發(fā) C#開(kāi)發(fā)微信門(mén)戶(hù)及應(yīng)用-微信企業(yè)號(hào)的通訊錄管理開(kāi)發(fā)之部門(mén)管理

C#開(kāi)發(fā)微信門(mén)戶(hù)及應(yīng)用-微信企業(yè)號(hào)的通訊錄管理開(kāi)發(fā)之部門(mén)管理

Feb 18, 2017 am 09:28 AM

?前面一篇隨筆企業(yè)號(hào)的一些基礎(chǔ)信息,以及介紹如何配置企業(yè)號(hào)的回調(diào)方式實(shí)現(xiàn)和企業(yè)號(hào)服務(wù)器進(jìn)行溝通的橋梁。本篇主要還是繼續(xù)介紹企業(yè)號(hào)的開(kāi)發(fā)工作的開(kāi)展,介紹微信企業(yè)號(hào)通訊錄管理開(kāi)發(fā)功能,介紹其中組織機(jī)構(gòu)里面如何獲取和管理部門(mén)的信息等內(nèi)容。

?1、企業(yè)組織的創(chuàng)建和配置

首先我們可以在企業(yè)號(hào)的管理后臺(tái)里面創(chuàng)建一個(gè)組織機(jī)構(gòu),里面創(chuàng)建一些部門(mén)和人員列表,方便我們開(kāi)發(fā)和使用。

例如創(chuàng)建一個(gè)廣州愛(ài)奇迪的根結(jié)構(gòu),然后在其中在創(chuàng)建一些組織機(jī)構(gòu),如下圖所示。

C#開(kāi)發(fā)微信門(mén)戶(hù)及應(yīng)用(17)-微信企業(yè)號(hào)的通訊錄管理開(kāi)發(fā)之部門(mén)管理

然后給組織結(jié)構(gòu)根節(jié)點(diǎn)“廣州愛(ài)奇迪”增加一個(gè)管理員權(quán)限,以后再開(kāi)發(fā)接口里面也就可以使用這個(gè)管理員所屬的權(quán)限Secret值進(jìn)行調(diào)用了。

C#開(kāi)發(fā)微信門(mén)戶(hù)及應(yīng)用(17)-微信企業(yè)號(hào)的通訊錄管理開(kāi)發(fā)之部門(mén)管理

CorpID是企業(yè)號(hào)的標(biāo)識(shí),每個(gè)企業(yè)號(hào)擁有一個(gè)唯一的CorpID;Secret是管理組憑證密鑰。
系統(tǒng)管理員可通過(guò)管理端的權(quán)限管理功能創(chuàng)建管理組,分配管理組對(duì)應(yīng)用、通訊錄、接口的訪(fǎng)問(wèn)權(quán)限。完成后,管理組即可獲得唯一的secret。系統(tǒng)管理員可通過(guò)權(quán)限管理查看所有管理組的secret,其他管理員可通過(guò)設(shè)置中的開(kāi)發(fā)者憑據(jù)查看。

我的企業(yè)號(hào)的創(chuàng)建者和“廣州愛(ài)奇迪”組織結(jié)構(gòu)的管理員是不同的,由于Secret是管理組憑證密鑰,因此管理者負(fù)責(zé)不同的組織機(jī)構(gòu)管理的話(huà),自己的管理Secret值可能就不同了。如果我們需要調(diào)用接口,就需要用到這個(gè)屬于自己權(quán)限級(jí)別的Secret值,如下圖所示。

C#開(kāi)發(fā)微信門(mén)戶(hù)及應(yīng)用(17)-微信企業(yè)號(hào)的通訊錄管理開(kāi)發(fā)之部門(mén)管理

?如果不是企業(yè)號(hào)的創(chuàng)建者,那么可能不能修改里面的一些權(quán)限分配,只能查看。

C#開(kāi)發(fā)微信門(mén)戶(hù)及應(yīng)用(17)-微信企業(yè)號(hào)的通訊錄管理開(kāi)發(fā)之部門(mén)管理

2、API訪(fǎng)問(wèn)的全局唯一票據(jù)AccessToken的獲取

和公眾號(hào)一樣,我們調(diào)用企業(yè)號(hào)API的第一步也是需要先獲取訪(fǎng)問(wèn)的票據(jù)AccessToken。這個(gè)票據(jù)是全局性的,有一定的時(shí)效和頻率控制,因此需要適當(dāng)?shù)倪M(jìn)行緩存,不能每次調(diào)用都去刷新獲取。

企業(yè)號(hào)獲取訪(fǎng)問(wèn)票據(jù)的主要的邏輯代碼如下所示,其主要的就是需要使用管理者的Secret值去獲取對(duì)應(yīng)的口令,這樣它就能夠知道管理的是那個(gè)組織結(jié)構(gòu)的了。

????????///?<summary>
????????///?獲取每次操作微信API的Token訪(fǎng)問(wèn)令牌????????///?</summary>
????????///?<param name="corpid">企業(yè)Id</param>
????????///?<param name="corpsecret">管理組的憑證密鑰</param>
????????///?<returns></returns>
????????public?string?GetAccessTokenNoCache(string?corpid,?string?corpsecret)
????????{????????????var?url?=?string.Format("http://www.miracleart.cn/{0}&corpsecret={1}",
????????????????????????????????????corpid,?corpsecret);

????????????HttpHelper?helper?=?new?HttpHelper();????????????string?result?=?helper.GetHtml(url);????????????string?regex?=?"\"access_token\":\"(?<token>.*?)\"";????????????string?token?=?CRegex.GetText(result,?regex,?"token");????????????return?token;
????????}

微信企業(yè)號(hào)的說(shuō)明如下所示:

當(dāng)企業(yè)應(yīng)用調(diào)用企業(yè)號(hào)接口時(shí),企業(yè)號(hào)后臺(tái)為根據(jù)此次訪(fǎng)問(wèn)的AccessToken,校驗(yàn)訪(fǎng)問(wèn)的合法性以及所對(duì)應(yīng)的管理組的管理權(quán)限以返回相應(yīng)的結(jié)果。

注:你應(yīng)該審慎配置管理組的權(quán)限,夠用即好,權(quán)限過(guò)大會(huì)增加誤操作可能性及信息安全隱患。

AccessToken是企業(yè)號(hào)的全局唯一票據(jù),調(diào)用接口時(shí)需攜帶AccessToken。AccessToken需要用CorpID和Secret來(lái)?yè)Q取,不同的Secret會(huì)返回不同的AccessToken。正常情況下AccessToken有效期為7200秒,有效期內(nèi)重復(fù)獲取返回相同結(jié)果,并自動(dòng)續(xù)期。由于獲取access_token的api調(diào)用次數(shù)非常有限,建議企業(yè)全局存儲(chǔ)與更新access_token,頻繁刷新access_token會(huì)導(dǎo)致api調(diào)用受限,影響自身業(yè)務(wù)。

?

2、通訊錄管理之部門(mén)信息的維護(hù)

有了第一節(jié)里面的訪(fǎng)問(wèn)票據(jù),我們就可以利用API來(lái)做很多事情了,包括組織結(jié)構(gòu)的獲取、創(chuàng)建、刪除等等功能。

創(chuàng)建部門(mén)的官方接口定義如下所示。

  • 請(qǐng)求說(shuō)明

Https請(qǐng)求方式: POST

http://www.miracleart.cn/

請(qǐng)求包結(jié)構(gòu)體為:

{
???"name":?"郵箱產(chǎn)品組",
???"parentid":?"1"
}
  • 參數(shù)說(shuō)明

參數(shù) 必須 說(shuō)明
access_token 調(diào)用接口憑證
name 部門(mén)名稱(chēng)。長(zhǎng)度限制為1~64個(gè)字符
parentid 父親部門(mén)id。根部門(mén)id為1

?

  • 返回結(jié)果

{
???"errcode":?0,
???"errmsg":?"created",
???"id":?2
}

根據(jù)上面的一些類(lèi)似的接口定義說(shuō)明,我們先來(lái)定義下組織機(jī)構(gòu)部門(mén)數(shù)據(jù)的維護(hù)接口,然后在逐步實(shí)現(xiàn)和調(diào)用。

????????#region?部門(mén)管理????????///?<summary>
????????///?創(chuàng)建部門(mén)。????????///?管理員須擁有“操作通訊錄”的接口權(quán)限,以及父部門(mén)的管理權(quán)限。????????///?</summary>
????????CorpDeptCreateJson?CreateDept(string?accessToken,?string?name,?string?parentId);????????///?<summary>
????????///?更新部門(mén)。????????///?管理員須擁有“操作通訊錄”的接口權(quán)限,以及該部門(mén)的管理權(quán)限。????????///?</summary>
????????CommonResult?DeleteDept(string?accessToken,?int?id);????????///?<summary>
????????///?刪除部門(mén).????????///?管理員須擁有“操作通訊錄”的接口權(quán)限,以及該部門(mén)的管理權(quán)限。????????///?</summary>
????????CorpDeptListJson?ListDept(string?accessToken);????????///?<summary>
????????///?獲取部門(mén)列表.????????///?管理員須擁有’獲取部門(mén)列表’的接口權(quán)限,以及對(duì)部門(mén)的查看權(quán)限。????????///?</summary>
????????CommonResult?UpdateDept(string?accessToken,?int?id,?string?name);?
????????#endregion

如創(chuàng)建部門(mén)的接口實(shí)現(xiàn)如下所示,主要就是構(gòu)建URL和POST的數(shù)據(jù)包,然后統(tǒng)一調(diào)用并獲取返回?cái)?shù)據(jù),轉(zhuǎn)換為具體的Json對(duì)象實(shí)體即可。其他接口的實(shí)現(xiàn)方式類(lèi)似,不在贅述。

????????///?<summary>
????????///?創(chuàng)建部門(mén)。????????///?管理員須擁有“操作通訊錄”的接口權(quán)限,以及父部門(mén)的管理權(quán)限。????????///?</summary>
????????public?CorpDeptCreateJson?CreateDept(string?accessToken,?string?name,?string?parentId)
????????{????????????string?urlFormat?=?"http://www.miracleart.cn/{0}";????????????var?data?=?new
????????????{
????????????????name?=?name,
????????????????parentId?=?parentId
????????????};????????????var?url?=?string.Format(urlFormat,?accessToken);????????????var?postData?=?data.ToJson();

????????????CorpDeptCreateJson?result?=?CorpJsonHelper<CorpDeptCreateJson>.ConvertJson(url,?postData);????????????return?result;
????????}

CorpDeptCreateJson 對(duì)象實(shí)體類(lèi)的定義如下所示,我們主要是根據(jù)返回結(jié)果進(jìn)行定義的。

????///?<summary>
????///?創(chuàng)建部門(mén)的返回結(jié)果????///?</summary>
????public?class?CorpDeptCreateJson?:?BaseJsonResult
????{????????///?<summary>
????????///?返回的錯(cuò)誤消息????????///?</summary>
????????public?CorpReturnCode?errcode?{?get;?set;?}????????///?<summary>
????????///?對(duì)返回碼的文本描述內(nèi)容????????///?</summary>
????????public?string?errmsg?{?get;?set;?}????????///?<summary>
????????///?創(chuàng)建的部門(mén)id。????????///?</summary>
????????public?int?id?{?get;?set;?}
????}

?

?3、部門(mén)管理的API調(diào)用

?上面小節(jié)介紹了如何封裝部門(mén)管理的API,那么我們封裝好了對(duì)應(yīng)的接口和接口實(shí)現(xiàn),怎么樣在實(shí)際環(huán)境里面進(jìn)行調(diào)用處理的呢,為了方便我創(chuàng)建一個(gè)小的Winform程序來(lái)測(cè)試對(duì)應(yīng)API的功能,如下所示。

C#開(kāi)發(fā)微信門(mén)戶(hù)及應(yīng)用(17)-微信企業(yè)號(hào)的通訊錄管理開(kāi)發(fā)之部門(mén)管理

下面我們來(lái)介紹一下調(diào)用的代碼和效果展示。

????????private?void?btnCreateDeleteDept_Click(object?sender,?EventArgs?e)
????????{
????????????ICorpAddressBookApi?bll?=?new?CorpAddressBookApi();????????????string?name?=?"測(cè)試部門(mén)";
????????????CorpDeptCreateJson?json?=?bll.CreateDept(token,?name,?"2");????????????if?(json?!=?null)
????????????{
????????????????Console.WriteLine("創(chuàng)建了部門(mén):{0},?ID:{1}",?name,?json.id);????????????????//更新部門(mén)信息
????????????????name?=?"測(cè)試部門(mén)修改名稱(chēng)";
????????????????CommonResult?result?=?bll.UpdateDept(token,?json.id,?name);????????????????if(result?!=?null)
????????????????{
????????????????????Console.WriteLine("修改部門(mén)名稱(chēng):{0}?{1}",?(result.Success???"成功"?:?"失敗"),?result.ErrorMessage);
????????????????}????????????????//刪除部門(mén)
????????????????result?=?bll.DeleteDept(token,?json.id);????????????????if?(result?!=?null)
????????????????{
????????????????????Console.WriteLine("刪除部門(mén)名稱(chēng):{0}?{1}",?(result.Success???"成功"?:?"失敗"),?result.ErrorMessage);
????????????????}
????????????}
????????????
????????}

????????///?<summary>
????????///?獲取部門(mén)列表????????///?</summary>
????????private?void?btnListDept_Click(object?sender,?EventArgs?e)
????????{
????????????ICorpAddressBookApi?bll?=?new?CorpAddressBookApi();
????????????CorpDeptListJson?list?=?bll.ListDept(token);????????????foreach?(CorpDeptJson?info?in?list.department)
????????????{????????????????string?tips?=?string.Format("{0}:{1}",?info.name,?info.id);
????????????????Console.WriteLine(tips);
????????????}
????????}

C#開(kāi)發(fā)微信門(mén)戶(hù)及應(yīng)用(17)-微信企業(yè)號(hào)的通訊錄管理開(kāi)發(fā)之部門(mén)管理

?

?更多C#開(kāi)發(fā)微信門(mén)戶(hù)及應(yīng)用(17)-微信企業(yè)號(hào)的通訊錄管理開(kāi)發(fā)之部門(mén)管理?相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!


本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線(xiàn)人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話(huà)題

Laravel 教程
1601
29
PHP教程
1502
276