钉钉对接接口

TokenHelper.cs 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using Microsoft.Extensions.Caching.Distributed;
  2. using Microsoft.Extensions.Configuration;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. namespace DingDingDemo.Common
  7. {
  8. public class TokenHelper
  9. {
  10. private readonly IDistributedCache _cache;
  11. private readonly IConfiguration _configuration;
  12. public TokenHelper(IDistributedCache cache, IConfiguration configuration)
  13. {
  14. _cache = cache;
  15. _configuration = configuration;
  16. }
  17. /// <summary>
  18. /// 获取AccessToken
  19. /// </summary>
  20. /// <returns></returns>
  21. public string GetAccessToken()
  22. {
  23. var accesstoken = _cache.GetString(_configuration["DingTalkSettings:AppKey"] +"accesstoken");
  24. if (string.IsNullOrEmpty(accesstoken))
  25. {
  26. string result = HttpHelper.HttpGet(string.Format(_configuration["DingTalkSettings:TokenUrl"], _configuration["DingTalkSettings:AppKey"], _configuration["DingTalkSettings:AppSecret"]));
  27. var resultobj = result.ToJObject();
  28. if (resultobj["errcode"].ToString() == "0")
  29. {
  30. accesstoken = resultobj["access_token"].ToString();
  31. string cachetime = _configuration["DingTalkSettings:TokenCacheTime"];
  32. DistributedCacheEntryOptions options = new DistributedCacheEntryOptions();
  33. options.AbsoluteExpiration = DateTime.Now.AddSeconds(long.Parse(cachetime));
  34. _cache.SetString(_configuration["DingTalkSettings:AppKey"] + "accesstoken", accesstoken, options);
  35. }
  36. }
  37. return accesstoken;
  38. }
  39. }
  40. }