public LuminAccessTokenProvider(GoogleDriveSettings googleDriveSettings) { settings = googleDriveSettings; unitySyncContext = SynchronizationContext.Current; accessTokenRefresher = new AccessTokenRefresher(settings.GenericClientCredentials); accessTokenRefresher.OnDone += HandleAccessTokenRefreshed; limitedDeviceExchanger = new LimitedDeviceExchanger(settings, settings.GenericClientCredentials); limitedDeviceExchanger.OnDone += HandleLimitedDeviceExchanged; deviceCodeExchanger = new DeviceCodeExchanger(settings, settings.GenericClientCredentials); deviceCodeExchanger.OnDone += HandleDeviceCodeExchanged; }
private void HandleDeviceCodeExchanged(DeviceCodeExchanger exchanger) { if (deviceCodeExchanger.IsError) { if (!deviceCodeExchanger.IsPending) { Debug.LogError("UnityGoogleDrive: Failed to exchange code Portal"); HandleProvideAccessTokenComplete(true); } } else { settings.CachedAccessToken = exchanger.AccesToken; HandleProvideAccessTokenComplete(); } }