namespace Yw
{
///
/// AccessToken
///
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 过期辅助类
///
/// 获取AccessToken
///
public async Task 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(jsonString);
result.TryThrowException();
_accessToken = result.Data.Token;
_accessTokenExpireHelper.SetExpireTime(result.Data.ExpireTime);
}
}
}