获取生日PHP SDK的facebook权限

时间:2014-01-14 20:15:07

标签: php facebook sdk permissions authorization

我试图通过PHP SDK从Facebook获得用户生日。 奇怪的是,我们有一个类似的应用程序与相似的代码,在这里显示就好了。在这个应用程序中它不幸地不起作用。

这是facebookCon.php(已更改appID和secretID):

<?php
// Remember to copy files from the SDK's src/ directory to a
// directory in your application on the server, such as php-sdk/
require_once('facebookPhpSdk/facebook.php');

$config = array(
    'appId'  => 'MY_ID',
    'secret' => 'MY_SECRET',
    'allowSignedRequest' => false // optional but should be set to false for non-canvas apps
);

$facebook = new Facebook($config);
$uid = $facebook->getUser();

// Login or logout url will be needed depending on current user state.

if (!$uid) {
    $statusUrl = $facebook->getLoginStatusUrl();
    $loginUrl = $facebook->getLoginUrl(array('scope' => 'email','user_about_me','user_birthday','user_location'));
}else{
    $user = $facebook->api('/me');
    $accessToken = $facebook->getAccessToken();
    $logged = true;
}
?>

这是我想要显示生日的页面:

<?php   
$user = $facebook->api('/me');
echo $user['email'];
?>

我可以检索电子邮件,名字,姓氏,区域设置等但不是生日。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

Facebook已修改其默认设置的配置文件权限,今天早上我的工作正常,但现在生日,位置和电子邮件都必须经过授权,不属于默认配置文件access.public_profile现在只是:id,name,first_name ,last_name,link,gender,locale,age_range。

答案 1 :(得分:0)

这样做的一个原因可能是您可能已禁止APP访问您的生日,或者默认情况下可能会禁用它。这可以通过帐户设置 - &gt;下的设置来完成。应用 - &gt;其他人使用的应用。它将提供一个菜单,用于选择应用可以访问的特定类型的信息。类似的东西:

enter image description here

正如您所看到的,用户可以阻止应用访问他/她的生日。确保选中birthday选项。我使用Graph API explorer尝试了它,它对我来说很好。