亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

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

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

Mar 02, 2017 am 09:45 AM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


????????///?<summary>
????????///?獲取每次操作微信API的Token訪問令牌????????///?</summary>
????????///?<param>企業(yè)Id
????????///?<param>管理組的憑證密鑰
????????///?<returns></returns>
????????public?string?GetAccessTokenNoCache(string?corpid,?string?corpsecret)
????????{????????????var?url?=?string.Format("http://ipnx.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;
????????}</token>


微信企業(yè)號的說明如下所示:

當企業(yè)應用程式調(diào)用企業(yè)號介面時,企業(yè)號後臺為根據(jù)此次存取的AccessToken,校驗存取的合法性以及所對應的管理群組的管理權(quán)限以傳回對應的結(jié)果。

#:你應該審慎設定管理群組的權(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會導致api呼叫受限,影響自身業(yè)務。

?

2、通訊錄管理之部門資訊的維護

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

建立部門的官方介面定義如下所示。

  • 請求說明

Https請求方式: POST

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

請求包結(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ù)上面的一些類似的接口定義說明,我們先來定義下組織機構(gòu)部門數(shù)據(jù)的維護接口,然后在逐步實現(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)建部門的接口實現(xiàn)如下所示,主要就是構(gòu)建URL和POST的數(shù)據(jù)包,然后統(tǒng)一調(diào)用并獲取返回數(shù)據(jù),轉(zhuǎn)換為具體的Json對象實體即可。其他接口的實現(xiàn)方式類似,不在贅述。


????????///?<summary>
????????///?創(chuàng)建部門。????????///?管理員須擁有“操作通訊錄”的接口權(quán)限,以及父部門的管理權(quán)限。????????///?</summary>
????????public?CorpDeptCreateJson?CreateDept(string?accessToken,?string?name,?string?parentId)
????????{????????????string?urlFormat?=?"http://ipnx.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>


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


????///?<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,那么我們封裝好了對應的接口和接口實現(xiàn),怎么樣在實際環(huán)境里面進行調(diào)用處理的呢,為了方便我創(chuàng)建一個小的Winform程序來測試對應API的功能,如下所示。

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

?

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


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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72