2016-05-20 14 views
8

Nach einem Wechsel des Firebase-Autorisierungssystems, versuche ich Zugriffstoken in C# von Google Auth-Server abrufen.Abrufen neuer Firebase Access Token für REST-Dienste in .NET von Google Auth-Dienst

Nach neuen Dokumentation: https://firebase.google.com/docs/reference/rest/database/user-auth#section-api-usage

habe ich etwas ähnliches in C#:

using Google.Apis.Auth.OAuth2; 
[...] 
async Task<string> GetToken() 
{ 
    GoogleCredential credential; 
    using (var stream = new System.IO.FileStream("gckey.json", 
     System.IO.FileMode.Open, System.IO.FileAccess.Read)) 
    { 
     credential = GoogleCredential.FromStream(stream).CreateScoped(
      new string[] { "https://www.googleapis.com/auth/firebase.database" } 
      ); 
    } 

    ITokenAccess c = credential as ITokenAccess; 
    return await c.GetAccessTokenForRequestAsync(); 
} 

gckey.json ist Schlüsseldatei von Google Developer-Konsole für bestimmte Feuerbasis Projekt heruntergeladen.

-Code funktioniert gut, aber es gibt Zeichen, die mit Feuerbasis nicht funktioniert, ich habe versucht: https://fiery-torch-xxxx.firebaseio.com/.json?access_token=retrived token

aber ich erhalten: "error" : "Permission denied."

Was mache ich falsch? Oder was ich vermisse?

Antwort

3

Ich habe dies zu arbeiten, nachdem ich in den Bereichen

using Google.Apis.Auth.OAuth2; 
[...] 
async Task<string> GetToken() 
{ 
    GoogleCredential credential; 
    using (var stream = new System.IO.FileStream("gckey.json", 
     System.IO.FileMode.Open, System.IO.FileAccess.Read)) 
    { 
     credential = GoogleCredential.FromStream(stream).CreateScoped(
      new string[] { 
       "https://www.googleapis.com/auth/firebase.database", 
       "https://www.googleapis.com/auth/userinfo.email" } 
      ); 
    } 

    ITokenAccess c = credential as ITokenAccess; 
    return await c.GetAccessTokenForRequestAsync(); 
} 

Ich entdeckte dieses beim Lesen der folgenden Google-Gruppe thread "https://www.googleapis.com/auth/userinfo.email" enthalten: ist

Permission denied error when using Google Oauth2 access token

+0

Vielen Dank! – mjpolak

1

Ich lese die docs und es besagt, dass die url Parameter sollte "auth" nicht "access_token" sein. Kannst du das versuchen?

+0

Leider Antwort nicht: Msgstr "Auth - Token konnte nicht analysiert werden.". Ich glaube, dass Auth ist Relikt nach alten Autorisierungssystem, in der alten Dokumentation beschrieben: https://www.firebase.com/docs/rest/api/ – mjpolak

+0

Haben Sie versuchen, Firebase-Support? –

+0

Firebase-Support-Antworten sind derzeit etwas langsam. Ich glaube, es ist wegen der Fusion mit Google. – mjpolak