我正在使用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;
答案 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);