釘釘參數(shù)類(lèi)

image

給獲取token包一層方法,供外部調(diào)用,方法內(nèi)部加入緩存設(shè)計(jì),這樣就不用每次都生成新的token,提升性能,減少請(qǐng)求網(wǎng)絡(luò)帶來(lái)的資源消耗。

image

關(guān)于token操作的類(lèi)代碼如下:

public class Token
{
    /// 
    /// 到期時(shí)間(防止時(shí)間差,提前1分鐘到期)
    /// 
    /// 
    /// 
    public static DateTime TookenOverdueTime(DingToken token)
    {
        return token.CreateTokenTime.AddSeconds(token.Expires_in - 60);
    }
    /// 
    /// 是否超時(shí)
    /// 
    /// 
    /// 
    public static bool IsTimeOut(DingToken token)
    {
        return DateTime.Now >= TookenOverdueTime(token);
    }
    /// 
    /// 
    /// 
    /// 
    public static async Task GetNewToken(DingConfig dingConfig)
    {
        string strulr = "https://oapi.dingtalk.com/gettoken?appkey={0}&appsecret={1}";
        string appkey = dingConfig.DingAppKey; //應(yīng)用的唯一標(biāo)識(shí)key
        string appsecret = dingConfig.DingAppSecret;//應(yīng)用的密鑰
        HttpHelper http = new HttpHelper();
        string respone = await http.Get(string.Format(strulr, appkey, appsecret), Encoding.UTF8);
        var token = respone.ToObject();
        token.CreateTokenTime = DateTime.Now;
        return token;
    }
    /// 
    /// 獲取token
    /// 
    /// 
    public static async Task GetToken(DingConfig dingConfig)
    {
        var cache = IocManager.Instance.GetService();
        string key = "${dingConfig.DingAppKey}_${dingConfig.DingAppSecret}_${dingConfig.DingAgentId}";
        //讀取緩存token
        var dingDingToken = cache.Read(key);
        if (dingDingToken == null || IsTimeOut(dingDingToken))
        {
            dingDingToken = await GetNewToken(dingConfig);
            //寫(xiě)入緩存token
            cache.Write(key, dingDingToken);
        }
        return dingDingToken.Access_token;
    }
}
public class DingToken{
    /// 
    /// access_token
    /// 
    public string Access_token { get; set; }
    /// 
    /// 過(guò)期時(shí)間
    /// 
    public int Expires_in { get; set; }
    /// 
    /// 創(chuàng)建時(shí)間
    /// 
    public DateTime CreateTokenTime { get; set; }
}

三、獲取部門(mén)列表

  1. 代碼Demo

image

  1. 以下為實(shí)際項(xiàng)目開(kāi)發(fā)截圖(集成到項(xiàng)目中的運(yùn)用)

image

同步部門(mén)數(shù)據(jù),在實(shí)例化時(shí)賦值,就是調(diào)用釘釘API時(shí)的Url連接。

image

image

image

四、獲取部門(mén)下人員列表

  1. 代碼demo

image

  1. 以下為實(shí)際項(xiàng)目開(kāi)發(fā)截圖(集成到項(xiàng)目中的運(yùn)用)

image

同步用戶數(shù)據(jù),在實(shí)例化時(shí)賦值,就是調(diào)用釘釘API時(shí)的Url連接。

image

調(diào)api獲取用戶數(shù)據(jù)

image

寫(xiě)業(yè)務(wù)邏輯

image

五、.NET Core API

  1. demo實(shí)例調(diào)用

image

  1. 以下為實(shí)際項(xiàng)目開(kāi)發(fā)截圖(集成到項(xiàng)目中的運(yùn)用)同步部門(mén)

image

同步用戶

image

六、總結(jié)

本文介紹了如何使用 C# 語(yǔ)言對(duì)接釘釘開(kāi)放平臺(tái) API,獲取公司部門(mén),人員的數(shù)據(jù)。主要步驟包括:注冊(cè)釘釘開(kāi)發(fā)者賬號(hào)并創(chuàng)建應(yīng)用,獲取 AppKey 和 AppSecret。使用 AppKey 和 AppSecret 獲取 AccessToken。調(diào)用釘釘 API 獲取部門(mén)列表和部門(mén)下人員列表。C# 語(yǔ)言可以方便地與釘釘開(kāi)放平臺(tái) API 進(jìn)行交互,實(shí)現(xiàn)企業(yè)應(yīng)用與釘釘?shù)募伞?/p>

原文轉(zhuǎn)載自:https://mp.weixin.qq.com/s/rFmHbxy4J-JSSpXGUMjDHA

上一篇:

API接口安全—webservice、Swagger、WEBpack

下一篇:

讓大模型“聯(lián)網(wǎng)”的第一步?手把手教你調(diào)用搜索API!
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門(mén)場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)