2016-04-28 6 views
2

Ich versuche diesen Code zu verwenden, um Google Refresh-Token für die Anwendung mit Google.Apis.Auth.OAuth2 Bibliothek zu bekommen. Wenn ich es auf localhost, es ist perfekt gearbeitet, aber wenn ich es unter einer Azure Website verwenden wird es throw System.AggregateException mit Zugang sein verweigert Innerexception.Get.NET Google API RefreshToken - Zugriff verweigert

UserCredential credential = 
GoogleWebAuthorizationBroker.AuthorizeAsync(
    new ClientSecrets() 
    { 
     ClientId = "<client_id>", 
     ClientSecret = "<client_secret>" 
    }, 
    new string[] { }, 
    Environment.UserName, 
    CancellationToken.None, 
    null 
).Result; 

string refreshToken = credential.Token.RefreshToken; 

Die innere Ausnahme ist:

Innerexception Nachricht: Der Zugriff ist auf System.Net.HttpListener.SetupV2Config() bei System.Net.HttpListener.Start() bei Google.Apis verweigert .Auth.OAuth2.LocalServerCodeReceiver.d__6.MoveNext() --- Ende des Stack-Trace vom vorherigen Speicherort, an dem die Ausnahme ausgelöst wurde --- bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task-Task) bei System.Runtime .CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotificat ion (Aufgabenaufgabe) bei Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp.d__8.MoveNext() --- Ende des Stack-Trace vom vorherigen Speicherort, an dem die Ausnahme ausgelöst wurde --- bei System.Runtime.CompilerServices.TaskAwaiter. ThrowForNonSuccess (Task-Task) bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task-Task) bei Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__4.MoveNext() --- Ende des Stack-Trace aus früheren Stelle, wo Ausnahme wurde geworfen --- bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task-Task) bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task-Task) bei Google.Apis.Auth.OAuth2.GoogleWebAutho rizationBroker.d__1.MoveNext()

Gibt es eine andere Möglichkeit, Refresh-Token zu erhalten?

Danke!

Antwort

0

Haben Sie den Azure-URI im API-Manager der Google Console als autorisiert konfiguriert?

+0

Ja, natürlich habe ich die http: // .azurewebsites.net auf die Autorisierten JavaScript-Ursprünge gesetzt. Ich habe es für die Website und die API auch gemacht. Ich verwende das .NET-Backend mit System.Web.Http.ApiController, da es nur das API-Backend des Datenproviders ist. – Spuriga