我试图使用php访问和收集基本信息 -
用户名,性别,生日,年龄等。
但由于某种原因,我只能获得名称和性别,我得到Undefined index:
birthday
和age_range
。
有人可以帮我解决这个问题吗?我是Facebook Graph API的新手,并尝试修改他们为日志记录提供的给定代码。我认为我还不需要访问令牌,因为我在登录网站时尝试获取初始权限。
<?php
include('src\facebook.php');
//$scope = 'username,age_range,birthday,gender';
$config = array(
'appId' => 'XXXXXXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'fileUpload' => false,
'allowSignedRequest' => false
);
$facebook = new Facebook($config);
$user_id = $facebook->getUser();
?>
<html>
<head></head>
<body>
<?php
if($user_id) {
try {
//$user_profile = $facebook->api('/me','GET');
$user_profile = $facebook->api('/me','GET', array('scope' => 'user_birthday,gender,age_range,name,likes'));
echo "Name: " . $user_profile['name'];
echo " Gender: " . $user_profile['gender'];
echo " DOB: " . $user_profile['birthday'];
echo " Age_Range: " . $user_profile['age_range'];
} catch(FacebookApiException $e) {
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
error_log($e->getType());
error_log($e->getMessage());
}
} else {
// No user, print a link for the user to login
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
}
?>
</body>
</html>
也有人可以解释如何获得用户的喜欢,我知道我必须使用Facebook-&gt; api(我/喜欢)指定用户权限,但是我如何访问数组?谢谢你的帮助!
答案 0 :(得分:0)
请按照仅官方文档来避免此类错误 -
您正在将权限范围添加到错误的位置。
您使用的是错误的权限:gender,age_range,name,likes
- 这些权限不是有效权限!
您需要的权限是:user_likes
(对于喜欢),user_birthday
(生日); rest只是基本(默认)权限的一部分!
年龄范围字段也包含在公开个人资料中 - 适用于安装您应用的任何人。
使用登录代码时,您必须添加scope
参数:getLoginUrl()。
$params = array(
'scope' => 'user_likes, user_birthday'
);
$loginUrl = $facebook->getLoginUrl($params);
用户成功授予权限后,您将获得所需的内容!