2016-05-27 48 views
0

我正在使用azure mobileservices Facebook身份驗證和xamarin android原生應用程序。所有配置我已完成在Facebook和天藍色,並添加所需的權限「public_profile」。使用Xamarin android和azure facebook身份驗證獲取用戶配置文件/詳細信息的錯誤

正在顯示Facebook登錄頁面。在Facebook上添加憑據後,我想USERPROFILE從Facebook,

但我得到的錯誤 「Facebook.FacebookOAuthException:(OAuthException - #1)壞標記」

我的代碼是

用戶=等待客戶端.LoginAsync(this,MobileServiceAuthenticationProvider.Facebook);

userToken = user.MobileServiceAuthenticationToken;

var fb = new FacebookClient();

fb.AccessToken = userToken;

dynamic me = fb.Get(「me?fields = first_name,last_name」); //我在這裏得到錯誤

string firstname = me.first_name;

回答

2

您正在使用Azure Mobile Auth令牌訪問Facebook。您需要使用Facebook Access令牌。有兩種方法可以做到這一點:

1)使用Facebook客戶端身份驗證,然後將Facebook令牌提交給您的Azure移動應用程序以向Azure移動應用程序服務進行身份驗證。這被記錄爲howto中的「客戶端管理的認證」:https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-dotnet-how-to-use-client-library/#authentication

2)爲https://yoursite.azurewebsites.net/.auth/me做一個GET,同時將X-ZUMO-AUTH頭設置爲userToken的值 - 這將返回一個JSON對象,可以解析Facebook的身份驗證。

在這兩種情況下,您都將擁有兩個訪問令牌 - 一個用於Azure移動應用,另一個用於Facebook。然後,您可以使用Facebook令牌訪問Facebook API以獲取其他用戶信息。

+0

我想要做的是,在xamarin Android原生應用程序。所以你的選擇對我無用。我的問題已經更新了。 –

+0

我不知道你爲什麼這麼說。 Xamarin Android使用.NET庫(因此我參考了.NET的文檔),並且PROCESS與客戶端無關。您的代碼清楚地表明您正在使用來自Azure Mobile的令牌訪問Facebook,這是您的基本問題。 –

+0

我已經解決了使用以下鏈接http://stackoverflow.com/questions/32390377/get-user-info-like-name-email-id-etc-from-authentication-token-in-net-backend –

0

試試這個:

var userInfo = await Client.InvokeApiAsync("/.auth/me", 
System.Net.Http.HttpMethod.Get, null); 
相關問題