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); } } }