2011-11-28 62 views
2

我有一些非常复杂的代码,现在我已经使它简单得可笑,而且不起作用。Facebook SDK 3.1 getUser最基本的代码不工作

目前,它简单地带我回到页面,登录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; 
?> 

请。现在我花了整整一天的工作时间,而且我正在哭泣,不仅是为了我自己,而且是为了我的老板。

哭。

编辑:OK,奇怪的是,如果我有REDIRECT_URI设置facebook的标签,如果它没有通过认证本身,那么它不断重定向无限循环。但是,如果我删除重定向

+1

你真的用你的appId和secret取代了sd和sda吗? 无论如何,这里的代码示例看起来像你的 https://github.com/facebook/php-sdk/blob/master/examples/example.php – UnLoCo

回答

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; 
} 
-1

检查

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

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

} 

Facebook的唯一的登录名和代码后返回userID

相关问题