釘釘參數類

image

給獲取token包一層方法,供外部調用,方法內部加入緩存設計,這樣就不用每次都生成新的token,提升性能,減少請求網絡帶來的資源消耗。

image

關于token操作的類代碼如下:

public class Token
{
    /// 
    /// 到期時間(防止時間差,提前1分鐘到期)
    /// 
    /// 
    /// 
    public static DateTime TookenOverdueTime(DingToken token)
    {
        return token.CreateTokenTime.AddSeconds(token.Expires_in - 60);
    }
    /// 
    /// 是否超時
    /// 
    /// 
    /// 
    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; //應用的唯一標識key
        string appsecret = dingConfig.DingAppSecret;//應用的密鑰
        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);
            //寫入緩存token
            cache.Write(key, dingDingToken);
        }
        return dingDingToken.Access_token;
    }
}
public class DingToken{
    /// 
    /// access_token
    /// 
    public string Access_token { get; set; }
    /// 
    /// 過期時間
    /// 
    public int Expires_in { get; set; }
    /// 
    /// 創建時間
    /// 
    public DateTime CreateTokenTime { get; set; }
}

三、獲取部門列表

  1. 代碼Demo

image

  1. 以下為實際項目開發截圖(集成到項目中的運用)

image

同步部門數據,在實例化時賦值,就是調用釘釘API時的Url連接。

image

image

image

四、獲取部門下人員列表

  1. 代碼demo

image

  1. 以下為實際項目開發截圖(集成到項目中的運用)

image

同步用戶數據,在實例化時賦值,就是調用釘釘API時的Url連接。

image

調api獲取用戶數據

image

寫業務邏輯

image

五、.NET Core API

  1. demo實例調用

image

  1. 以下為實際項目開發截圖(集成到項目中的運用)同步部門

image

同步用戶

image

六、總結

本文介紹了如何使用 C# 語言對接釘釘開放平臺 API,獲取公司部門,人員的數據。主要步驟包括:注冊釘釘開發者賬號并創建應用,獲取 AppKey 和 AppSecret。使用 AppKey 和 AppSecret 獲取 AccessToken。調用釘釘 API 獲取部門列表和部門下人員列表。C# 語言可以方便地與釘釘開放平臺 API 進行交互,實現企業應用與釘釘的集成。

原文轉載自:https://mp.weixin.qq.com/s/rFmHbxy4J-JSSpXGUMjDHA

上一篇:

API接口安全—webservice、Swagger、WEBpack

下一篇:

讓大模型“聯網”的第一步?手把手教你調用搜索API!
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費