要点:
如何配置我的Facebook应用程序以向用户请求其他信息。
细节:
我最近决定尝试编写一个facebook应用程序。图api背后的想法似乎很好,我希望它是直截了当的。大错!
我成功地将以下内容拼凑在一起,成功检索了有关我的公开信息:
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => '*****',
'secret' => '*****',
'cookie' => true,
));
// Read session info from Facebook object above
$session = $facebook->getSession();
$me = null;
$myfriends = null;
$myalbums = null;
$myphotos = null;
// If logged in ok, load data into php objects for use in page
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me'); // infor about logged in person
$myfriends = $facebook->api('/me/friends'); // list of their friends and associated ids
$myphotos = $facebook->api('/me/photos'); // photos I've loaded or am tagged in - requires permissions!
$myalbums = $facebook->api('/me/albums');// Albums I've created - requires permissions!
} catch (FacebookApiException $e) {
error_log($e);
}
}
但是,它无法获取我的相册和照片,因为它们需要用户授予特殊权限。我的问题是我在基于Facebook的应用程序设置中看不到任何可以执行此操作的设置。
你能帮忙吗?答案 0 :(得分:1)
将以下代码附加到您的代码中。您需要将$ url设置为您的Facebook应用程序的URL,并根据您的需要调整'req_perms'。
if(!$session) {
$url = $facebook->getLoginUrl(array('req_perms'=>'email,publish_stream', 'next'=>$returnUrl));
echo <<<EOD
<html>
<head>
<script type="text/javascript">function redirect(){ top.location.href = "$url"; }</script>
</head>
<body onload="redirect();">Please wait...</body>
</html>
EOD;
}
答案 1 :(得分:1)
嗯,上面的答案几乎是正确的。但是,如果您需要其他图谱API权限,可以参考以下链接 Facebook_Permissions。而且,调整上述代码的方法是:array('req_perms'=&gt;'添加必需的权限','next'=&gt; $ returnUrl)。此外,如果有多个权限,请用逗号分隔。