繁体   English   中英

获取Facebook生日PHP SDK的许可

[英]Get facebook permission for birthday PHP SDK

我试图通过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'];
?>

我可以检索电子邮件,名字,姓氏,语言环境等,但不能检索生日。

我做错了什么?

Facebook修改了其个人资料权限以使用默认设置,今天早上我的矿井在工作,但现在生日,位置和电子邮件都必须经过授权,并且不属于默认个人资料访问权限。public_profile现在只是:id,name,first_name,last_name,链接,性别,语言环境,年龄范围。

原因之一可能是因为您可能不允许应用访问生日,或者默认情况下它已被禁用。 这可以通过“ 帐户设置”->“应用程序”->“其他人使用的应用程序”下的设置来完成。 它将提供一个菜单,用于选择应用程序可以访问的特定信息类型。 就像是:

在此处输入图片说明

如您所见,用户可能会阻止应用访问他/她的生日。 确保已选中“ birthday选项。 我使用Graph API Explorer进行了尝试,对我来说效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM