我尝试用以下代码检索相册详细信息:
$facebook = new Facebook(array(
'appId' => '',
'secret' => '',
'cookie' => true,
));
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$access_token = $facebook->getAccessToken();
$album = file_get_contents("https://graph.facebook.com/me/albums/?access_token={$access_token}");
print_r($album);
}else {
$loginUrl = $facebook->getLoginUrl(
array('canvas' => 1,
'fbconnect' => 0,
'req_perms' =>
'user_photos,friends_photos'
));
}
上面的代码返回一个空数组,为什么?有人能指出我的错误吗?
提前感谢!
好吧,你需要了解你在这里做什么,而不仅仅是遵循教程(或教程的组合!(:
- 不使用:
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
- 如果您并不真正需要用户数据
$user_profile
,则不需要第一个if($user)
语句 - 如果当前用户不需要获取访问令牌,因为SDK会负责处理
- 如果您使用的是SDK,为什么要使用
file_get_contents
- 新的SDK实现(遵循OAuth 2.0(要求您使用
scope
而不是req_perms
- 创建登录URL后,您需要实际使用它
这里有一个更好的代码让你开始:
$facebook = new Facebook(array(
'appId' => '',
'secret' => '',
'cookie' => true,
));
$user = $facebook->getUser();
if ($user) {
try {
$user_albums = $facebook->api('/me/albums');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
} else {
$loginUrl = $facebook->getLoginUrl(array('scope' => 'user_photos,friends_photos'));
echo "<script>top.location.href = '" . $loginUrl . "';</script>";
}
我强烈建议您在尝试一些随机代码之前先阅读文档。