2012-02-08 37 views
0

這是我的第一個FB應用程序,網站集成,並且我無法獲得FB的示例php代碼來返回access_token。FB不爲我的應用程序返回access_token,沒有指定錯誤消息。

我已經檢查: - 上developer.facebook.com應用設定畫面看起來OK(無警告或錯誤) - 包括facebook.php的 頁面上最新版本的GitHub - APP_ID和app_secret正確

下面的代碼是從FB文檔複製的,但$response不返回任何內容,$user->name爲空。

任何人都可以在這裏給我一隻手嗎?有沒有一種調試技術可以告訴我爲什麼它無法成功獲取access_token?

$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)."<br>"; 
+0

還停留,但一個小測試顯示,$ TOKEN_URL值是通過https:URL,和我的PHP的file_get_contents($ TOKEN_URL)榮獲」 t返回任何東西。檢查我的服務器上的PHP配置,但仍然感謝幫助,如果這不是問題。 – 2012-02-08 02:12:20

回答

1

,而不是上面的代碼嘗試以下

<?php 

require_once 'library/facebook.php'; 

// Create our Application instance. 
$facebook = new Facebook(array(
    'appId' => 'app id', 
    'secret' => 'secret', 
    'cookie' => true, 
)); 

    $app_id = '149865361795547'; 

    $canvas_page = "canvas page link "; 

    $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
      . $app_id . "&redirect_uri=" . urlencode($canvas_page) . ("&scope=email,read_stream&response_type=token"); 

    $signed_request = $_REQUEST["signed_request"]; 

    list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

    $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 

    if (empty($data["user_id"])) { 
      echo("<script> top.location.href='" . $auth_url . "'</script>"); 
    } else { 

    //get the user access token 
      $atoken = $facebook->getAccessToken(); 
      echo "</br>" . 'User Access_Token:' . $atoken; 

    //get the user id 
      $UserId = $data["user_id"]; 
      echo 'UserId;' . $UserId; 
} 
?> 
相關問題