2012-03-06 34 views
0

我開發基於Facebook的身份驗證我的應用程序的一個使用身份驗證,較早的時間我使用下面的代碼是From Nettuts Tutorial圖形API 3.0 PHP

但是當圖形API 3.0出來我可以添加此相同的代碼我新的網絡應用程序,我怎樣才能生成一個登錄作爲關於鏈接?

我正在使用以下代碼,但不知道如何在其中進行會話?

============================================== ==========================

回答

0

使用Facebook PHP SDK,您需要重定向到Facebook的OAuth對話框,然後使用返回請求驗證您的用戶。

的Facebook具有以下樣品上http://developers.facebook.com/docs/authentication/

<?php 

$app_id = "YOUR_APP_ID"; 
$app_secret = "YOUR_APP_SECRET"; 
$my_url = "YOUR_URL"; 

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

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

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

if($_REQUEST['state'] == $_SESSION['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); 

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

    $user = json_decode(file_get_contents($graph_url)); 
    echo("Hello " . $user->name); 
} 
else { 
    echo("The state does not match. You may be a victim of CSRF."); 
}