2012-02-09 27 views
1

我很熟悉舊的Facebook REST API和新的Graph API。通過圖形API,並給予最大的權限,我可以要求用戶的照片(其我的應用程序和我的帳戶):如何將照片的Facebook REST API PID轉換爲其獨特的圖形ID?

client.Get("/me/photos"); 

這將返回的JSON編碼圖形API的照片的數組。唯一的問題是,這不是帳戶中的照片總數。我查了一下這個通過精心計算我的Facebook照片和它對抗一個簡單的呼叫從舊REST API比較:

select pid from photo where aid in (select aid from album where owner=me()) 

(以上從內存中,但我一直行之有效)

我計數和REST API確認圖表API不會返回帳戶中的所有照片(我也瞭解分頁情況)。

有誰知道這是爲什麼?另外,沒有人知道如何將舊的REST API pid(照片ID)轉換爲新的GRAPH API唯一ID。這是我能想到得到所有照片的唯一途徑。

回答

1

FQL仍然是可用的圖形API

https://graph.facebook.com/fql?q=select pid from photo where aid in (select aid from album where owner=me())

而且在,有一個名爲OBJECT_ID照片FQL表中的另一個屬性,它應該對應(如果沒有記錯)照片中的API表

的ID

https://developers.facebook.com/docs/reference/fql/photo/

https://developers.facebook.com/docs/reference/api/photo/

+0

很抱歉這麼晚纔回復後腰,但感謝你的深思熟慮的迴應。總的來說,你是正確的,在大多數情況下,object_id可以用作GRAPH API ID。我發現我可以在FQL中檢索更多的照片,而不是使用GRAPH,這是搞砸了。我收集了我所有照片和我的所有photo_tags中的所有object_id。然後,我使用GRAPH API的功能,可以讓您通過它們的ID檢索對象。在716張照片中,我找回了594張照片。無法通過GRAPH API訪問122張照片。我認爲這是一個FB錯誤。可能權限被以不同方式應用。 – 2012-02-22 00:53:54

+0

您是否在http://developers.facebook.com/bugs上記錄了這個錯誤?至少現在你知道如何轉換和獲取照片ID與對象ID的區別(有點讓人混淆,Facebook以這種方式開發,但嘿,我們可以說,我們不是Facebook)。你能否給我信用來回答你的問題標題? 「如何將照片的Facebook REST API PID轉換爲其獨特的圖形ID?」謝謝。 – DMCS 2012-02-22 17:05:35

+0

我很樂意。我怎麼做?難道是「這篇文章對你有用嗎?」事情? – 2012-02-23 16:34:59

0

嘗試:

https://www.facebook.com/photo.php?pid=11504724&l=3f088bdde4&id=99984862969 
https://graph.facebook.com/fql?q=select object_id from photo where pid="99984862969_11504724" 

的反應應該是:

{ 
    "data": [ 
     { 
     "object_id": "10151373634447970" 
     } 
    ] 
} 
相關問題