使用Xamarin android和azure facebook身份验证获取用户个人资料/详细信息时出错

时间:2016-05-27 06:28:43

标签: facebook xamarin.android azure-mobile-services

我正在使用azure mobileservices facebook身份验证和xamarin android原生应用。我在facebook和azure中完成的所有配置,还添加了所需的权限“public_profile”。

正在显示Facebook登录页面。在facebook中添加凭证后,我想要来自facebook的用户档案,

但我收到错误“Facebook.FacebookOAuthException:(OAuthException - #1)Bad signature”

我的代码是

user = await client.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 个答案:

答案 0 :(得分:2)

您正在使用Azure Mobile Auth令牌访问Facebook。您需要使用Facebook Access令牌。有两种方法可以做到这一点:

1)使用Facebook客户端身份验证,然后将facebook令牌提交到您的azure移动应用程序,以验证天蓝色的移动应用程序服务。这被记录为"客户端管理的身份验证"在howto:https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-dotnet-how-to-use-client-library/#authentication

2)在将X-ZUMO-AUTH标头设置为userToken的值时,为https://yoursite.azurewebsites.net/.auth/me做一个GET - 这将返回一个可以为Facebook身份验证解析的JSON对象。

在这两种情况下,您将拥有两个访问令牌 - 一个用于Azure移动应用程序,另一个用于Facebook。然后,您可以使用facebook令牌访问facebook API以获取其他用户信息。

答案 1 :(得分:0)

试试这个:

var userInfo = await Client.InvokeApiAsync("/.auth/me", 
System.Net.Http.HttpMethod.Get, null);
相关问题