2013-12-13 48 views
0

我想學習一些Facebook的開發,因爲它似乎人們要求facebook整合這種或那種方式。Facebook的PHP SDK - API返回空

我想要獲得像我的名字一樣簡單的東西,使用PHP SDK在屏幕上回顯,我似乎無法做到這一點。

我的代碼是非常基本的,只是有什麼需要的

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

    $config = array(
    'appId' => '14283923YYYYYYY48', 
    'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXX', 
    'allowSignedRequest' => false 
); 

    $facebook = new Facebook($config); 
    $user_id = $facebook->getUser(); 
?> 
<html> 
    <head></head> 
    <body> 

    <?php 
    if($user_id) { 

     $user_profile = $facebook->api('/me','GET'); 
     echo "Name: " . $user_profile['name']; 
     if (is_null($user_profile)) 
      echo "NULL"; 
     else echo "NOT NULL"; 
    } 
    ?> 

    </body> 
</html> 

名不顯示了,你可以看到我所測試的$ user_profile變量,它出現NULL,所以我認爲api函數不起作用,不返回任何東西。

我的代碼錯了嗎?或者我應該尋找其他地方的問題?任何提示或建議來解決問題將非常有幫助。

+0

是什麼'的var_dump($ user_profile)'的結果,用戶的個人資料? – Raptor

+0

剛剛嘗試過,它也是NULL – sherban1988

+0

它是'NULL',因爲你不是試圖登錄一個用戶。如果你看[示例](https://github.com/facebook/facebook-php -sdk/blob/master/examples/example.php)你會看到他們有一個'if' /'else'語句,根據用戶狀態創建一個登錄/註銷鏈接。用戶需要驗證您的應用程序。 –

回答

0

您需要提供一個登錄功能,讓用戶明確允許使用其用戶ID,並創建一個訪問令牌。這可以在PHP SDK或JavaScript SDK中完成(並且可以實現雙重功能)。

鏈接:

https://developers.facebook.com/docs/facebook-login/

**請也查看以下內容:Facebook PHP SDK/Graph API - Returning MY name/info, but not anyone elses?

+0

我是在自己的帳戶上試用它,並且我登錄並接受了應用程序請求。如果我要寫回聲$ user_id,我的FB ID將顯示在瀏覽器中。 – sherban1988

0
<?php 
if($user_id) { 

    $user_profile = $facebook->api('/me','GET'); 
    echo "Name: " . $user_profile['name']; 
    if (is_null($user_profile)) 
     echo "NULL"; 
    else echo "NOT NULL"; 
} 

?> 

變化的代碼的部分截面上述

$user_profile = $facebook->api('/me','GET');

$user profile = $facebook->api($user_id, 'GET') 

,那麼你將能夠獲得其使用Facebook登錄在你的網站

希望這是幫助