我正在尝试获取用户的生日,但只要我添加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
而未打开,我怎么能这样做?
答案 0 :(得分:1)
经过长时间的研究,我发现这是因为我的应用程序是" Live"。看起来只有当前处于开发模式的应用才有权限。
希望它会对某人有所帮助。