2012-11-27 142 views
-1

問題:我想獲取我的臉書牆上的所有信息。 描述:爲此,我正在使用訪問令牌。但我無法檢索我的臉書牆上的帖子。以下是我用過的代碼。如何使用用戶訪問令牌獲取Facebook信息

<?php 

    $app_id = "xxxxxxxxxxxxxx"; 
    $app_secret = " xxxxxxxxxxxxxxxxxxx "; 
    $my_url = "http://localhost:8088/fb/testing.php"; 

    session_start(); 
    $code = $_REQUEST["code"]; 

    if(empty($code)) 
{ 
    $_SESSION['state'] = md5(uniqid(rand(), TRUE)); // CSRF protection 
    $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" 
     . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state=" 
     . $_SESSION['state']. "&scope=publish_stream,read_stream"; 

    echo("<script> top.location.href='" . $dialog_url . "'</script>"); 
    } 

     if($_SESSION['state'] && ($_SESSION['state'] === $_REQUEST['state'])) 
     { 

    $token_url = "https://graph.facebook.com/oauth/access_token?" 
     . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url) 
     . "&client_secret=" . $app_secret . "&code=" . $code; 

    $response = file_get_contents($token_url); 
    $params = null; 
    parse_str($response, $params); 
    echo $response; 
    $_SESSION['access_token'] = $params['access_token']; 

    $graph_url = "https://graph.facebook.com/me/feed/?access_token=" 
     . $params['access_token']; 

    $response = json_decode(file_get_contents($graph_url)); 
    if($response) 
    echo $response; 

    echo("Hello " .$user); 
    } 
    else { 
    echo("The state does not match. You may be a victim of CSRF."); 
    } 


?> 

在這裏,當我打印$ user參數時,它什麼也不顯示。我無法找出錯誤。請幫我解決這個問題。它非常緊急。我會非常感激。

+0

哪裏是$用戶的聲明? –

回答

0

這裏是讓Facebook的用戶代碼通過PHP API供稿,我用Facebook的PHP SDK來獲得提要:

<?php 
require_once('src/facebook.php'); 

$facebook = new Facebook(array(
       'appId' => '304784726296644', 
       'secret' => '0d68eaf6dfe5d99cec8f3559b1212b15', 
       'cookie' => true, 
      )); 

$uid = $facebook->getUser(); 

$me = null; 
if ($uid) { 
    try { 

    $me = $facebook->api('/me'); 
    $feed = $facebook->api('/me/feed/'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    } 
} 


//4. login or logout 
if ($uid) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 

?> 
<!doctype html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <head> 
    <title>php-sdk</title> 
    </head> 
    <body> 
    <?php if($uid) 

    { 
    ?> 
    <a href="<?php echo $logoutUrl; ?>">Logout</a> 
    <?php 
    } 
else 
{ 
?> 
<a href="<?php echo $loginUrl; ?>">Login</a> 
<?php 
} 
    ?> 

    <?php if ($me): ?> 
    <?php 
    echo "<pre>"; 
    print_r($feed); 
    echo "</pre>"; 
    ?> 
    <?php endif ?> 


    </body> 
</html> 
+0

我試過上面的方法。但即使這種方法沒有爲我工作..即使我登錄,我得到的uid爲0 ..我使用站點URL作爲http:// localhost:8088/fb。請幫助我。它非常緊急。 –

+0

您正在使用哪個版本的Facebook的PHP SDK? – senthilbp

相關問題