Facebook php应用程序 - 配置为请求其他信息

时间:2010-11-19 16:36:34

标签: php facebook

要点:

如何配置我的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的应用程序设置中看不到任何可以执行此操作的设置。

你能帮忙吗?

2 个答案:

答案 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)。此外,如果有多个权限,请用逗号分隔。