问题描述
Facebook几天前开始返回此错误:
“无效范围:数组(请检查小写字母或分隔符)”
我有一段时间没有更改登录功能或Facebook应用程序设置了。知道这个范围有什么问题或发生了什么变化吗?
$config = [
'callback' => HttpClient\Util::getcurrenturl(),'providers' => [
PROVIDER => [
"enabled" => true,"keys" => [
"id" => "nnnnnnnnnnnnnnn","secret" => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ],"scope" => ['public_profile','email']
],],];
https://www.facebook.com/dialog/oauth?response_type=code&client_id=nnnnnnnnnnnnnnn&redirect_uri=https%3A%2F%2Fxxxxxxxxx.com%2Ffacebook-login.PHP&scope[0]=public_profile&scope[1]=email&state=HA-nnnnxnnnnxnnnnxnnnnxnnnnxnnnnxnnnx
您可以在这里尝试我的Facebook登录名: https://trailsnh.com/dashboard.php
解决方法
我知道您说过您通过将其更改为逗号分隔的字符串来修复它,这很棒。有关此文档,请参见Facebook Developer site。在那里,他们说:
范围。用逗号或空格分隔的权限列表,以向使用您的应用的用户请求。
我个人将其更改为空格,因为这就是defined in the OAuth specification:
scope参数的值表示为以空格分隔的区分大小写的字符串的列表。
如果它在Facebook上再次发生变化,我希望它仍然符合规范。因此,如果您将其更改为任何内容,我认为这是更安全的选择。