Facebook SDK无效范围错误

时间:2018-06-10 17:23:14

标签: facebook-graph-api facebook-php-sdk

我正在尝试获取用户的生日,但只要我添加user_birthday权限,我就会收到错误Invalid Scopes: user_birthday. This message is only shown to developers...

我认为它首先被弃用但却一无所获,3.0的文档也有user_birthday权限。 (HERE

$fb = new Facebook\Facebook([
    'app_id' => 'XXXXXXXXXXXXXXX',
    'app_secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXX',
    'default_graph_version' => 'v3.0',
]);

$helper = $fb->getRedirectLoginHelper();

$permissions = ['email', 'user_birthday'];
$loginUrl = $helper->getLoginUrl('https://mywebsite.com/callback', $permissions);

$loginUrlFinal = 'https://www.facebook.com/dialog/oauth?client_id=XXXXXXXXXXXXXXX&redirect_uri='.$loginUrl.'&state='.urlencode($fb_params);

关于无效范围的此错误后,我被重定向到我的回调文件,并显示“错误请求”错误。

if (! isset($accessToken)) {
    if ($helper->getError()) {
        header('HTTP/1.0 401 Unauthorized');
        echo "Error: " . $helper->getError() . "\n";
        echo "Error Code: " . $helper->getErrorCode() . "\n";
        echo "Error Reason: " . $helper->getErrorReason() . "\n";
        echo "Error Description: " . $helper->getErrorDescription() . "\n";
    } else {
        header('HTTP/1.0 400 Bad Request');
        echo 'Bad request';
    }
    exit;
}

修改 几乎所有我添加的权限都会发生这种情况,到目前为止唯一一个只有email

?fields=email,user_birthday的OpenGraph请求不返回任何生日,而ID,姓名,电子邮件正常工作。我想这是因为我没有批准user_birthday权限,但是如果权限屏幕由于Invalid Scopes而未打开,我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

经过长时间的研究,我发现这是因为我的应用程序是" Live"。看起来只有当前处于开发模式的应用才有权限。

希望它会对某人有所帮助。