2010-07-20 23 views
1

所以考慮看看這裏的API文檔頁:Facebook FB.api - 只需使用它發回的JSON對象?

http://developers.facebook.com/docs/reference/javascript/FB.api

如果響應收回是一個HttpResponse或JSON對象我不知道。他們說他們在響應中返回一個JSON對象。

所以,因爲他們正在執行的東西,如response.name等,這是否意味着我們不需要解析JSON對象?我不明白。我打算使用jQuery parseJSON解析返回的JSON對象,以便遍歷它並獲取數據。

更新:

玉以及這裏是我的實際代碼:

var uri = "/" + userID + "/albums"; 

    FB.api(uri, function (response) { 
     // check for a valid response 
     if (!response || response.error) 
     { 
      alert("error occured"); 
      return; 
     } 


     alert("console.log(response): " + console.log(response)); 
     alert("response: " + response[0].length); 
}); 

在傳遞的URI是這樣的:/1637262814/albums

回答

0

返回JavaScript值。 Graph API總是返回一個對象,但有些old methods返回數字或布爾值。通常這是一個對象,如{ name: 'My Name', id: 1234 }。最容易在螢火蟲中運行:FB.api('/me', function(r) { console.log(r) }),因爲它可以讓你探索響應。你也可以看看這個例子:http://fbrell.com/fb.api/user-info

+0

以及它應該返回一個JSON對象。問題是無論我嘗試提醒某些事情是否嘗試響應[0]或無論它可能是什麼,我只是不斷地在警報框中獲得「對象」。我不知道如何獲取JSON字符串,所以我可以使用jQuery的getJSON解析它。我只需要字符串。但我不明白爲什麼在他們的JS SDK示例中顯示response.name等是PHP解析的事情,使他們能夠直接引用他們嘗試使用的值的名稱? – PositiveGuy 2010-07-20 13:17:24

+0

當我警告出響應[0]我得到一個未定義的錯誤,但我知道響應不爲空 – PositiveGuy 2010-07-20 13:21:20

+0

好console.log說響應是未定義的。但是,如果是這樣的話,爲什麼它會進入我的回調並通過這個檢查:if(!response || response.error)alert(「error occured」); return; } – PositiveGuy 2010-07-20 13:23:41

0

我的意思並不是不禮貌,但我認爲,最快的方法來找出這將是嘗試和警報(響應),和/或警報(評估(響應)),看看會發生什麼。

只需提醒(回覆)應該足以讓你知道你在得到什麼以及如何對待它。

+0

已經做到了。當我做出警報響應時,它只是說它是一個對象。 – PositiveGuy 2010-07-20 12:48:18

+0

實際上它是未定義的,這是合理的,因爲我仍然沒有收到任何數據。即使用戶授予我需要訪問其專輯和照片的權限集合,問題依然存在。 – PositiveGuy 2010-07-26 05:17:49

1

所以他們只是返回一個JSON字符串,但是你的編程語言把它包裝到一個HttpResponse中。你必須從響應中提取JSON字符串,然後解析它。

+0

如果是這樣的話,爲什麼我不能做alert(response [0]);看到那個字符串?當我這樣做時,我只是將「對象」當作價值。那麼JSON字符串是響應中的唯一對象嗎? – PositiveGuy 2010-07-20 13:15:34

+0

看起來我沒有收到數據:{data =} – PositiveGuy 2010-07-20 14:00:32