【问题标题】:Retrieve Facebook user details with using Socialite Laravel使用 Socialite Laravel 检索 Facebook 用户详细信息
【发布时间】:2018-11-30 14:16:01
【问题描述】:

我正在使用 Laravel 5.4.36 版本,我正在使用 Laravel Sociallite plugin 将用户与 Facebook 联系起来。

现在,我想获取此 Facebook 官方文档中提供的登录用户信息,例如出生日期性别、地址、手机号码或 any permissions

我试过下面的代码

$facebookScope = [
        'user_birthday',
        'user_location',
];
$facebookFields = [
        'name', // Default
        'email', // Default
        'gender', // Default
        'birthday', // I've given permission
        'location', // I've given permission
];
return Socialite::driver('facebook')->fields($facebookFields)->scopes($facebookScope)->redirect();

现在,当我使用 Facebook 按钮单击登录时,它会显示类似的错误

无效范围:user_birthday、user_location。此消息仅向开发人员显示。您的应用程序的用户将忽略这些权限(如果存在)。请阅读https://developers.facebook.com/docs/facebook-login/permissions的有效权限文档

我尝试了不同的范围,例如字段名称 = 年龄和范围 = user_age_range 字段名称 = 生日和范围名称 = user_birthday 字段名称 = 朋友和字段名称 = user_friends

对于我使用的每个范围,我都会收到无效范围的错误。

我做错了吗?我是否需要更改我为登录而创建的 Facebook 应用程序中的某些内容?

请提出建议。

【问题讨论】:

标签: php laravel facebook facebook-graph-api laravel-socialite


【解决方案1】:

您需要在 Facebook 应用页面上明确声明所需的范围。打开https://developers.facebook.com/apps/ 仪表板,转到应用审核并提交您需要范围的项目。之后,您需要遵守 Facebook 请求,通常涉及登录流程和功能使用的屏幕截图。

请注意,此过程需要相当长的时间。我创建的一些应用程序计划在 8 月初进行审核。

【讨论】:

  • @ShashankShah 是的。根据我的经验,由于这些原因,它停止检索我声明的范围。
  • @CBroe 哦。哦,那好吧。那是我的错。
  • 你知道任何与测试用户相关的事情吗?在 Facebook 开发者帐户下的角色部分 -> 您可以添加具有权限的测试用户。
  • @ShashankShah 是的,您可以添加测试用户。您可以通过图形 api 创建一个。他们像真实用户一样拥有访问令牌和特权。在自动化测试场景中非常有用。检查developers.facebook.com/docs/apps/test-users
  • 看起来你毕竟是对的 - 它似乎与审查有关,因为现在他们更加限制了这一点,所以你的应用程序需要处于开发模式,否则即使是有角色的人在应用程序中不能再要求这些未经审查的权限。
【解决方案2】:

user_birthdayuser_locationuser_friends 在向公众提供之前,还有许多其他范围需要从 facebook 进行审核。但是,您可以将这些范围用于开发人员和测试用户帐户。

https://developers.facebook.com/docs/apps/review/

【讨论】:

    【解决方案3】:

    好吧,事实证明这毕竟与审查有关 - 如果只是间接的。

    您现在需要让您的应用处于“开发”模式,以便能够向在应用中拥有角色的人请求这些权限。

    一旦您将其设置为“实时”,即使您使用管理员或开发者帐户进行测试,它也会显示“无效范围”错误。

    在这方面,错误消息的措辞有点误导/不吉利。

    【讨论】:

    • 谢谢!我已将应用程序模式从实时模式设置为开发模式!除此之外,我在我的开发者帐户下创建了测试用户并授予他们所有权限,现在我可以获得所有权限。
    • 你能看看这个吗? stackoverflow.com/questions/51056070/…
    • 为什么 Facebook 不这么说,而不是那个无用的错误消息?!这就像假设的知识。
    【解决方案4】:

    此错误是因为 facebook 已更新您正在寻找的新权限 请参阅最新权限此文档显示最新权限并更新您的https://developers.facebook.com/docs/facebook-login/permissions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      • 2013-09-11
      相关资源
      最近更新 更多