2016-05-27 3 views
0

Ich benutze azure mobileservices Facebook-Authentifizierung und Xamarin android native App. Alle Konfiguration habe ich in Facebook und azurblau abgeschlossen und auch erforderliche Berechtigung "public_profile" hinzufügen.Fehler beim Abrufen von Benutzerprofil/Detail mit Xamarin android und azure facebook Authentifizierung

Facebook Login-Seite wird angezeigt. nach Berechtigungsnachweis in Facebook Hinzufügen möchte ich Userprofil von facebook,

Aber ich bin immer Fehler "Facebook.FacebookOAuthException: (OAuthException - # 1) Bad Signatur"

Mein Code ist

user = erwarten Client .LoginAsync (dies, MobileServiceAuthenticationProvider.Facebook);

userToken = user.MobileServiceAuthenticationToken;

var fb = neu FacebookClient();

fb.AccessToken = userToken;

dynamic me = fb.Get ("ich? Felder = Vorname, Nachname"); // Ich bekomme Fehler hier

Zeichenfolge Vorname = me.first_name;

Antwort

2

Sie verwenden den Azure Mobile Auth-Token für den Zugriff auf Facebook. Sie müssen ein Facebook Access-Token verwenden. Es gibt zwei Möglichkeiten, dies zu tun:

1) Verwenden Sie eine Facebook-Clientauthentifizierung, und senden Sie das Facebook-Token an Ihre azurblaue mobile App, um sich beim azurblauen mobilen Appdienst zu authentifizieren. Dies wird als „Client-Managed-Authentifizierung“ im Howto dokumentiert: https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-dotnet-how-to-use-client-library/#authentication

2) DO ein GET für https://yoursite.azurewebsites.net/.auth/me während des Header X-ZUMO-AUTH Einstellung auf den Wert von Usertoken - das ist ein JSON-Objekt zurück, das Sie kann für die Facebook-Authentifizierung parsen.

In beiden Fällen haben Sie zwei Zugriffstoken - einen für Azure Mobile Apps und einen für Facebook. Sie können dann mit dem Facebook-Token auf die Facebook-API zugreifen, um zusätzliche Benutzerinformationen zu erhalten.

+0

ich, dass in Xamarin Android native App tun wollen. also sind deine Optionen für mich nicht nützlich. Ich habe dasselbe in meiner Frage aktualisiert. –

+0

Ich bin mir nicht sicher, warum du das sagst. Xamarin Android verwendet die .NET-Bibliothek (daher meine Referenz zur Dokumentation für .NET) und der PROCESS ist unabhängig vom Client derselbe. Ihr Code zeigt deutlich, dass Sie das Token von Azure Mobile verwenden, um auf Facebook zuzugreifen. Dies ist das zugrunde liegende Problem. –

+0

Ich habe mit folgendem Link http://stackoverflow.com/questions/32390377/get-user-info-like-name-email-id-etc-from-authentication-token-in-net-backend gelöst –

0

Try this:

var userInfo = await Client.InvokeApiAsync("/.auth/me", 
System.Net.Http.HttpMethod.Get, null); 
Verwandte Themen