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

目錄
?1、企業(yè)組織的創(chuàng)建和配置
2、API存取的全域唯一票據(jù)AccessToken的取得
2、通訊錄管理之部門資訊的維護(hù)
?3、部門管理的API調(diào)用
首頁 微信小程式 微信開發(fā) C#開發(fā)微信入口網(wǎng)站及應(yīng)用-微信企業(yè)號的通訊錄管理開發(fā)之部門管理

C#開發(fā)微信入口網(wǎng)站及應(yīng)用-微信企業(yè)號的通訊錄管理開發(fā)之部門管理

Feb 18, 2017 am 09:28 AM

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

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

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

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

C#開發(fā)微信門戶及應(yīng)用(17)-微信企業(yè)號的通訊錄管理開發(fā)之部門管理

接著為組織結(jié)構(gòu)根節(jié)點(diǎn)「廣州愛奇迪」增加一個管理員權(quán)限,以後再開發(fā)介面裡面也就可以使用這個管理員所屬的權(quán)限Secret值進(jìn)行呼叫了。

C#開發(fā)微信門戶及應(yīng)用(17)-微信企業(yè)號的通訊錄管理開發(fā)之部門管理

CorpID是企業(yè)號的標(biāo)識,每個企業(yè)號擁有一個唯一的CorpID;Secret是管理群組憑證密鑰。
系統(tǒng)管理員可透過管理端的權(quán)限管理功能建立管理群組,指派管理群組對應(yīng)用程式、通訊錄、介面的存取權(quán)限。完成後,管理組即可獲得唯一的secret。系統(tǒng)管理員可透過權(quán)限管理查看所有管理群組的secret,其他管理員可透過設(shè)定中的開發(fā)者憑證查看。

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

C#開發(fā)微信門戶及應(yīng)用(17)-微信企業(yè)號的通訊錄管理開發(fā)之部門管理

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

C#開發(fā)微信門戶及應(yīng)用(17)-微信企業(yè)號的通訊錄管理開發(fā)之部門管理

2、API存取的全域唯一票據(jù)AccessToken的取得

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

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

????????///?<summary>
????????///?獲取每次操作微信API的Token訪問令牌????????///?</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://m.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è)號的說明如下所示:

當(dāng)企業(yè)應(yīng)用調(diào)用企業(yè)號接口時,企業(yè)號後臺為根據(jù)此次訪問的AccessToken,校驗訪問的合法性以及所對應(yīng)的管理群組的管理權(quán)限以傳回對應(yīng)的結(jié)果。

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

AccessToken是企業(yè)號的全域唯一票據(jù),呼叫介面時需攜帶AccessToken。 AccessToken需要用CorpID和Secret來換取,不同的Secret會回傳不同的AccessToken。 正常情況下AccessToken有效期為7200秒,有效期內(nèi)重複取得返回相同結(jié)果,並自動續(xù)期。由於取得access_token的api呼叫次數(shù)非常有限,建議企業(yè)全域儲存與更新access_token,頻繁刷新access_token會導(dǎo)致api呼叫受限,影響自身業(yè)務(wù)。

?

2、通訊錄管理之部門資訊的維護(hù)

有了第一節(jié)裡面的存取票據(jù),我們就可以利用API來做很多事情了,包括組織結(jié)構(gòu)的取得、創(chuàng)建、刪除等等功能。

創(chuàng)建部門的官方介面定義如下所示。

  • 請求說明

Https請求方式: POST

http://m.miracleart.cn/

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

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

參數(shù) 必須 說明
access_token 調(diào)用接口憑證
name 部門名稱。長度限制為1~64個字符
parentid 父親部門id。根部門id為1

?

  • 返回結(jié)果

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

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

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

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

????????///?<summary>
????????///?創(chuàng)建部門。????????///?管理員須擁有“操作通訊錄”的接口權(quán)限,以及父部門的管理權(quán)限。????????///?</summary>
????????public?CorpDeptCreateJson?CreateDept(string?accessToken,?string?name,?string?parentId)
????????{????????????string?urlFormat?=?"http://m.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 對象實(shí)體類的定義如下所示,我們主要是根據(jù)返回結(jié)果進(jìn)行定義的。

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

?

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

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

C#開發(fā)微信門戶及應(yīng)用(17)-微信企業(yè)號的通訊錄管理開發(fā)之部門管理

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

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

????????///?<summary>
????????///?獲取部門列表????????///?</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#開發(fā)微信門戶及應(yīng)用(17)-微信企業(yè)號的通訊錄管理開發(fā)之部門管理

?

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


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

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

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整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)