namespace Yw
|
{
|
/// <summary>
|
/// AccessToken
|
/// </summary>
|
public sealed partial class BIMFaceClient
|
{
|
private string _accessToken;//令牌
|
private const string _accessTokenUrl = @"https://api.bimface.com/oauth2/token";//令牌请求地址
|
private readonly AccessTokenExpireHelper _accessTokenExpireHelper = new(); //access token 过期辅助类
|
|
|
/// <summary>
|
/// 获取AccessToken
|
/// </summary>
|
public async Task<string> GetAccessToken()
|
{
|
if (string.IsNullOrEmpty(_accessToken) || _accessTokenExpireHelper.IsExpire())
|
{
|
await GetAccessTokenAsync();
|
}
|
return _accessToken;
|
}
|
|
//获取AccessToken,内部调用
|
private async Task GetAccessTokenAsync()
|
{
|
var request = new FlurlRequest(_accessTokenUrl);
|
var header = HeaderHelper.GetHeader(_appKey, _appSecret);
|
request.WithHeader(header.Key, header.Value);
|
var response = await request.PostAsync();
|
var jsonString = await response.GetStringAsync();
|
var result = JsonHelper.Json2Object<AccessTokenResponse>(jsonString);
|
result.TryThrowException();
|
_accessToken = result.Data.Token;
|
_accessTokenExpireHelper.SetExpireTime(result.Data.ExpireTime);
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|