public async Task <CloudStorageResult> InitAsync() { CloudStorageResult result = new CloudStorageResult(); bool IsNeedLogin = true; try { // 取得上次登入資訊 string LastRefreshToken = LoadRefreshTokenDelegate?.Invoke(); // 初始化 result.Status = Status.NeedAuthenticate; oauthClient = new GoogleDriveOauthClient(ApiKey, ApiSecret); if (!string.IsNullOrEmpty(LastRefreshToken)) { IsNeedLogin = !await oauthClient.RefreshTokenAsync(LastRefreshToken); if (IsNeedLogin) { LastRefreshToken = null; } else { result.Status = Status.Success; // 儲存新的access token/refresh token SaveAccessTokenDelegate?.Invoke(oauthClient.AccessToken); InitDriveService(); } } } catch (Exception ex) { result.Message = ex.Message; } return(result); }
public void StopListen() { oauthClient?.StopListen(); oauthClient = null; }