我使用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应用程序中的内容?
请建议 .
3 回答
好吧,事实证明这与审查有关 - 如果只是间接的话 .
您现在需要让您的应用程序处于“开发”模式,以便能够在应用程序中为具有这些权限的角色询问 .
一旦将其设置为“实时”,即使您正在使用管理员或开发人员帐户进行测试,它也会显示“无效范围”错误 .
在这方面,错误消息的措辞有点误导/不幸 .
您需要在Facebook应用页面上明确声明所需的范围 . 打开https://developers.facebook.com/apps/仪表板,转到应用审核并提交您需要的范围 . 之后,您需要遵守Facebook请求,通常涉及登录流程和功能使用的屏幕截图 .
请注意,此过程需要相当长的时间 . 我创建的一些应用程序计划在8月初进行审核 .
user_birthday
,user_location
,user_friends
在向公众用户提供之前,还有许多其他范围需要从Facebook审核 . 但是,您可以将这些范围用于开发人员和测试用户帐户 .https://developers.facebook.com/docs/apps/review/