【问题标题】:Facebook SDK 3.1 getUser most basic code not workingFacebook SDK 3.1 getUser 最基本的代码不起作用
【发布时间】:2012-01-08 02:22:18
【问题描述】:

我有一些非常复杂的代码,现在我把它变得简单得可笑,但它不起作用。

目前,它只是将我带回显示登录 URL 的页面。

代码在这里:

<?php
require 'facebook.php';

// Create our application instance
// (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => 'sd',
  'secret' => 'sda',
));

// Get User ID
$user = $facebook->getUser();


if($user) {
    echo $user;
} else {
    $loginUrl = $facebook->getLoginUrl(array('redirect_uri'=>'http://www.facebook.com/pages/CharlesTestPage/225802194155435?sk=app_252946408094785','scope'=>'email'));
  echo $loginUrl;
}
exit;
?>

请。我现在已经为此花费了一整天的带薪工作日,并且快要哭了,不仅为我自己,也为我的老板。

哭泣。

编辑:好的,奇怪的是,如果我将 redirect_uri 设置为 facebook 选项卡,如果它本身没有经过身份验证,那么它会在无限循环中不断重定向。但是,如果我删除重定向

【问题讨论】:

标签: authentication facebook facebook-php-sdk


【解决方案1】:

检查

if(isset($_GET['code'])){

    $user = $facebook->getUser();
    $access_token = $facebook->getAccessToken();

}

Facebook 仅在登录和该代码后返回 userID

【讨论】:

    【解决方案2】:

    这就是使用 PHP SDK 3.1.1 对我有用的东西。试试看,让我们知道这是否有效:

    include('facebook.php');
    session_start();
    
    //facebook application
    $config['appid' ] = "YOUR_APP_ID";
    $config['secret'] = "YOUR_APP_SECRET";
    $config['baseurl'] = "http://example.com/facebookappdirectory";
    $config['appbaseurl'] = "http://apps.facebook.com/your-app-name";
    
    
    // Create our Application instance.
    $facebook = new Facebook(array(
      'appId'  => $config['appid'],
      'secret' => $config['secret'],
      'cookie' => true,
    ));
    
    $user = $facebook->getUser();
    $loginUrl = $facebook->getLoginUrl(
            array(
                'scope' => 'email'
            )
    );
    
    if ($user) {
      try {
        //get user basic description
        $userInfo = $facebook->api("/$user");
        $fb_access_token = $facebook->getAccessToken();
      } catch (FacebookApiException $e) {
        //you should use error_log($e); instead of printing the info on browser
        error_log('APP ERROR: '.$e); 
        $user = null;
      }
    }
    
    if (!$user) {
        echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
        exit;
    }
    
    if (isset($_GET['code'])){
        header("Location: " . $config['appbaseurl']);
        exit;
    }
    

    【讨论】:

      猜你喜欢
      • 2016-02-01
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      相关资源
      最近更新 更多