【问题标题】:MVC4 oauth facebook accessing User & Friend Permissions:MVC4 oauth facebook 访问用户和朋友权限:
【发布时间】:2012-08-25 22:47:07
【问题描述】:

现在使用新的 mvc4 让我们可以使用 facebook oauth otb。

我在 facebook 中创建了一个新应用程序,并设置了一些额外的要求,以询问用户电子邮件地址/位置和生日的权限。

我已经在 fb 中保存了更改,当单击预览身份验证对话框时,我可以看到我希望在预览窗口中显示的额外权限。

当我尝试对 facebook 进行身份验证时,系统不会询问我是否允许我在 facebook 中设置的额外字段。

我的 mvc 应用程序中是否还有其他内容需要更改才能将这些额外要求传递给 facebook?

感谢您的帮助。

【问题讨论】:

    标签: facebook asp.net-mvc-4


    【解决方案1】:

    看来您必须编写自己的自定义提供程序。如果是这样,你应该看看 http://blogs.msdn.com/b/webdev/archive/2012/08/23/plugging-custom-oauth-openid-providers.aspxhttp://blog.mrroa.com/post/30454808112/asp-net-custom-linkedin-oauth-provider

    我所做的是: 在AccountController: - 我使用 Facebook 添加; (facebook.dll 来自 www.csharpsdk.org) 也在AccountController,在ExternalLoginCallback中找到:

    在这里,我使用 facebook c# sdk 在调用 CreateOrUpdateAccount 之前请求额外的权限。

    我认为这不是最好的解决方案,但它确实有效。

    【讨论】:

    • 我已关注 rroa 自定义提供程序,并尝试使用自定义提供程序从 LinkedIn 获取更多用户信息作为响应,但它并没有返回给我更多信息。例如,我将此 URL https://api.linkedin.com/v1/people/~:(id,first-name,last-name,headline,industry,summary) 更改为新 URL https://api.linkedin.com/v1/people/~:(id,email-address,first-name,last-name,headline,industry,summary) 以获取用户电子邮件,但它从未返回我的用户电子邮件。有什么建议我怎样才能获得更多的用户信息?
    • 好的。经过大量搜索,我得到了解决方案here。我们需要在RequestTokenEndpoint = new MessageReceivingEndpoint("https://api.linkedin.com/uas/oauth/requestToken?scope=r_basicprofile,r_emailaddress", HttpDeliveryMethods.PostRequest) 这一行添加范围。可以添加越来越多的范围以获取更多数据
    • 从这篇文章tinyurl.com/aherzvm 中查看这个解决方案:在 MVC4 Internet 项目中更新 NuGet 包。 DotNetOpenAuthCore。它将自动更新所有依赖项。现在 result.UserName 将包含电子邮件地址而不是您的姓名。
    【解决方案2】:

    我在 facebook 中创建了一个新应用程序,并设置了一些额外的要求,以询问用户电子邮件地址/位置和生日的权限。

    我已经在 fb 中保存了更改,当单击预览身份验证对话框时,我可以看到我希望在预览窗口中显示的额外权限。

    当我尝试对 facebook 进行身份验证时,系统不会询问我是否允许我在 facebook 中设置的额外字段。

    这听起来你是另一个对 Authenticated Referrals 实际做什么感到困惑的人。 (您的应用设置中的权限字段仅适用于那些!)

    Authenticated Referrals 会在用户点击任何链接重定向到 Facebook 上的应用时发挥作用。

    但是,如果您是自己登录,则必须使用 scope 参数请求您想要的权限。

    【讨论】:

    • 嘿@CBroe 我过去使用过 js sdk,所以我知道需要添加范围详细信息。因此,开箱即用提供的默认设置不允许我添加范围设置。我是否需要创建一个允许我添加范围详细信息的自定义 Facebook 客户端?
    • 我不知道你的开发环境中的“默认”和“开箱即用”是什么……
    【解决方案3】:

    不幸的是,如果您在 MVC 4 附带的 FacebookClient 类上使用 ILSpy,您会看到 MS 代码根本不请求电子邮件信息,即使底层 DotNetOpenAuth 类支持它。

    因此,您需要实现自己的 FacebookClient 类,该类几乎完成相同的操作,但将电子邮件地址添加到请求的项目中。我自己现在正在尝试这个,并希望它尽快工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多