Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public void StopListen()
 {
     oauthClient?.StopListen();
     oauthClient = null;
 }