2011-06-17 69 views
2

我正在構建一個簡單的PHP類,它允許您輸入您的twitter用戶名,要加載的推文數量,facebook id,要加載的狀態數量以及訪問令牌然後檢索您的用戶數據(名稱,個人資料照片等)和指定數量的推文/狀態。在簡單的PHP社交媒體類中使用CURL與FQL

我正在通過使用cURL調用一個URL並使用PHP中構建的json_decode()函數將它解析爲一個對象給我來檢索數據。

我的問題是這樣的 - 我可以通過將用戶名傳遞到正確的URL(例如http://twitter.com/users/user.json)而完全正確地檢索所有Twitter數據,但所有facebook數據都返回NULL。我想我知道這個問題 - 我使用FQL所以我打電話像URL:

https://api.facebook.com/method/fql.query?format=json&access_token=####&query=SELECT first_name,middle_name,last_name FROM user WHERE uid = #### LIMIT 1";

這似乎那麼你重定向到內置文件(而Twitter是直接鏈接到正確的文件)。

有沒有人知道我可以做這個工作?我更喜歡使用FQL,因爲我已經多花了一些時間,但如果這不可能,那麼改變我並不算太大。

我可以提供任何其他細節需要

回答

0

你的語法看起來完全正常,所以有機會,有可能是與你逝去的訪問令牌的方式的問題。

我只是看看我寫的一些代碼,而我傳遞的是應用程序ID和應用程序的祕密,而不是訪問令牌。我不確定自從我前一段時間編寫代碼後是否有所作爲,但可能會發生改變。

如果您使用PHP,則可以使用Facebook的PHP SDK。這可以讓你編寫稍微冗長的代碼,這將更容易維護。你可以在這裏找到它:http://developers.facebook.com/docs/sdks/

使用它,我寫這個叫FQL查詢:

$facebook = new Facebook(array(
     'appId' => $fb_config["app_id"], 
     'secret' => $fb_config["secret"],   
     'cookie' => true,)); 

    $params = array( 
     'queries' => $queries, 
     'method' => "fql.multiquery" 
    ); 

取決於你正在嘗試做的,你也可以使用圖形API來獲取數據。在這個例子中,你使用Graph API可能會更簡單。但是如果你想獲得複雜的數據,那麼FQL會更好。

+0

我可能誤解了你的答案,但是acces令牌被正確地傳遞給我所知道的。如果我將api.facebook鏈接複製並粘貼到瀏覽器中,我會得到正確的結果,然後它將我轉發給JSON,這是我試圖直接用cURL獲取的東西。我將研究SDK - 我不想使用它,因爲我不想要求facebook.php文件,但如果沒有其他方法,我可以使用它。謝謝 – ollie 2011-06-17 13:35:04