2014-01-19 76 views
0

我在這裏發佈由於與PHP和Facebook的sdk問題。

由於我不知道的原因,當我嘗試獲取記錄的帳戶的用戶ID時,即使我登錄,我仍然會收到相同的值0。

我一直在試圖調試一些變量,Facebook,檢查會話等,但結果不成功,然後我會詳細說明我正在做的和我正在做的調試日誌:

我使用託管我的網站的hostinger服務器。由於我已經發現了很多問題,我創建了一個測試網頁中,我有5個文件: 的index.php

callback.php 
facebook.php (comes from facebook) 
base_facebook.php 
certificate 

代碼中,我對的index.php是我一直粘貼在這裏: [index.php]:http://pastebin.com/Mfdkxz8H這只是嘗試獲取autentification的代碼的第一部分。

我在callback.php上的代碼就是我在這裏粘貼的代碼:[callback.php]:http://pastebin.com/Uw0A3NM8。在那裏我嘗試獲取用戶ID。

我讀過一些帖子,由於某些原因,在第二個文件/調用中沒有收到令牌 的情況非常多。

我真的不知道問題是什麼,很樂意找到解決方案。

P.D它並不重要的appId和祕密,因爲Facebook和網頁是爲測試而創建的。

+0

一百回答了這個問題,已經。你有沒有檢查過他們? –

+0

我已經花了3-4天的時間嘗試通過幫助尋找解決方案,其他類似的話題涉及到我的問題,甚至是facebook的合同,但我仍然有同樣的問題。由於有些日子,我開始認爲這個問題是我的服務器,不允許我連接Facebook。 – DevStarlight

回答

0

很難分辨您的代碼示例中會出現什麼情況(順便說一句,您永遠不應該公開您的appId和祕密,否則有人可能會損害您的應用程序)。 A給你的代碼快速一瞥,它「看起來」很好,但這裏有幾個指針:

但是,這裏有幾個指針。 1)確保你有最新版本的Facebook SDK(假設你是這樣做的) 2)爲了SANITY的緣故,我會將你的Facebook API文件保存在其文件夾中('sdk') 3)雙擊檢查你的應用程序設置以確保應用標識和機密是正確的(我犯這個錯誤很多次),還請確保您在是不是在沙盒模式 4)然後嘗試這樣的事情

include_once("sdk/facebook.php"); 

//Call Facebook API 
$facebook = new Facebook(array(
    'appId' => XXXXXXXXXXXXXXXX, 
    'secret' => XXXXXXXXXXXXXXXX, 
    'cookie' => true, // enable optional cookie support 
)); 

$params = array(
    'scope' => 'email', 
    'redirect_uri' => 'http://devstarlight.esy.es/facebook/callback.php' 
); 

$login_url = $facebook->getLoginUrl($params); 
+0

在調查了這個問題後,在我的舊代碼中,我發現我沒有從callback.php中的Facebook獲得任何結果,甚至在調用$ facebook-> getUser()時,我現在先請求代碼,然後在令牌之後沒有試圖獲得關於用戶的任何信息,並且我可以在SESSIONS/COOKIES中看到用戶。這裏的新代碼 http://pastebin.com/yG1Nj2Eq 我可以試着從cookie中獲取用戶嗎?這就是全部? – DevStarlight

+1

我建議你使用facebook php-sdk的最新版本,並將其與js-sdk結合使用.github src for php sdk包含一個與th js-sdk結合的例子。這會在用戶驗證並創建cookie後處理頁面的重新加載 – TommyBs