
天貓商品數據爬取方案:官方API與非官方接口實戰
釘釘參數類
給獲取token包一層方法,供外部調用,方法內部加入緩存設計,這樣就不用每次都生成新的token,提升性能,減少請求網絡帶來的資源消耗。
關于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; }
}
同步部門數據,在實例化時賦值,就是調用釘釘API時的Url連接。
同步用戶數據,在實例化時賦值,就是調用釘釘API時的Url連接。
調api獲取用戶數據
寫業務邏輯
同步用戶
本文介紹了如何使用 C# 語言對接釘釘開放平臺 API,獲取公司部門,人員的數據。主要步驟包括:注冊釘釘開發者賬號并創建應用,獲取 AppKey 和 AppSecret
。使用 AppKey 和 AppSecret
獲取 AccessToken。調用釘釘 API 獲取部門列表和部門下人員列表。C# 語言可以方便地與釘釘開放平臺 API 進行交互,實現企業應用與釘釘的集成。
原文轉載自:https://mp.weixin.qq.com/s/rFmHbxy4J-JSSpXGUMjDHA