在Facebook installa facebook app将我重定向到网址但在Facebook之外

时间:2012-10-28 11:10:14

标签: facebook

我有以下问题:

我正在尝试为Facebook做第一个应用程序,在Facebook连接和安装应用程序之后不会自动将我重定向到网址但在Facebook之外。这只是第一次发生,一旦它被安装,如果网址被充电并留在Facebook内。

有任何想法要解决它吗?

我不知道问题是代码还是应用程序配置:(

// PHP SDK v.3.0.0 de Facebook    
require 'includes/facebook.php';

$facebook = new Facebook(array(
  'appId'  => '*******',
  'secret' => '*************',
));
$user = $facebook->getUser();
if ($user) {
  try {
    $user_profile = $facebook->api('/me');
    $me =  $facebook->api('/me');

  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl(array(
                'scope' => 'read_stream,publish_stream,user_about_me,user_likes,email,user_status'
            ));
}
 if (!$user) {
        echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
        exit;
    } 
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
  <head>
    <title>php-sdk 3.0.0</title>
        <style typ="text/css">
            html, body { width: 520px;}
        </style>    
  </head>
  <body>
    <h1>php-sdk</h1>
    <h3>PHP Session</h3>
      <?php foreach($_SESSION as $key=>$value){
          echo '<strong>' . $key . '</strong> => ' . $value . '<br />';
      }
      ?>
      <h3>Tu</h3>
      <img src="https://graph.facebook.com/<?php echo $user; ?>/picture">
      <h3>Tus datos (/me)</h3>
      <?php foreach($user_profile as $key=>$value){
          echo '<strong>' . $key . '</strong> => ' . $value . '<br />';
      }
      ?>
  </body>
</html> 

1 个答案:

答案 0 :(得分:0)

您未在redirect_uri方法中指定getLoginUrl,因此SDK会根据您当前的网址为您构建一个redirect_uri

所以您只需将画布网址设置为$loginUrl = $facebook->getLoginUrl(array( 'scope' => 'read_stream,publish_stream,user_about_me,user_likes,email,user_status', 'redirect_uri' => 'CANVAS_URL' ));

即可
$user_profile

P.S:$me和{{1}}保持相同的值,只使用其中一个而不是进行两次Graph API调用。