【问题标题】:Error in getting user profile/detail using Xamarin android and azure facebook authentication使用 Xamarin android 和 azure facebook 身份验证获取用户个人资料/详细信息时出错
【发布时间】:2016-05-27 06:28:42
【问题描述】:

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

动态 me = fb.Get("me?fields=first_name,last_name"); // 我这里出错了

字符串名字 = me.first_name;

【问题讨论】:

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


    【解决方案1】:

    您正在使用 Azure 移动身份验证令牌访问 Facebook。您需要使用 Facebook 访问令牌。有两种方法可以做到这一点:

    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) 在将 X-ZUMO-AUTH 标头设置为 userToken 的值时,为 https://yoursite.azurewebsites.net/.auth/me 执行 GET - 这将返回一个 JSON 对象,您可以解析该对象以进行 Facebook 身份验证。

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

    【讨论】:

    • 我想在 xamarin android 本机应用程序中执行此操作。所以你的选择对我没有用。我已经更新了我的问题。
    • 我不知道你为什么这么说。 Xamarin Android 使用 .NET 库(因此我参考了 .NET 的文档),并且无论客户端如何,PROCESS 都是相同的。您的代码清楚地表明您正在使用 Azure Mobile 的令牌来访问 Facebook,这就是您的根本问题。
    • 我已经解决了使用以下链接stackoverflow.com/questions/32390377/…
    【解决方案2】:

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 2018-03-22
      • 2018-09-03
      • 2013-07-02
      • 2011-01-13
      • 2012-09-15
      • 2017-10-07
      • 2016-04-10
      • 2019-01-27
      • 1970-01-01
      相关资源
      最近更新 更多