2011-05-08 25 views
3

我有一個用戶,user_2。他們的牆上有一個帖子,由user_1製作。當我嘗試通過Facebook Graph API訪問特定類型的對象時,爲什麼會出現此錯誤?

enter image description here

的網址是

https://www.facebook.com/user_1/posts/10150166228506188 

我嘗試使用Graph API來獲取內容,這個請求:

https://graph.facebook.com/10150166228506188?access_token=ACCESSTOKENUSER_2 

我得到這個錯誤:

{ 
    "error": { 
     "type": "GraphMethodException", 
     "message": "Unsupported get request." 
    } 
} 

我使用的的access_token是好的,因爲請求得到這樣的狀態的東西&圖像精細工作:

https://graph.facebook.com/10150233707783933?access_token=ACCESSTOKENUSER_2 

結果:

{ 
    "id": "10150233707783933", 
    "from": { 
     "name": "American Steel", 
     "category": "Professional sports team", 
     "id": "203692078932" 
    }, 
    "tags": { 
     "data": [ 
etc 

錯誤似乎發生每當我試圖讓有項目這種URL的:

https://www.facebook.com/username/posts/item_id 

的權限我的應用程序包括以下: enter image description here

爲什麼會發生此錯誤?

回答

4

我認爲,爲了直接通過圖表api訪問帖子,您必須將用戶標識預先設置爲您在facebook網址中看到的帖子標識。

所以在您的例子中,Facebook發佈網址是:

https://www.facebook.com/user_1/posts/10150166228506188 

,並嘗試通過圖形API來獲取:

https://graph.facebook.com/10150166228506188?access_token=ACCESSTOKENUSER_2 

,但你應該做的:

https://graph.facebook.com/{id of user_1}_10150166228506188?access_token=ACCESSTOKENUSER_2 

我注意到所有帖子的ID都是這樣形成的:

https://graph.facebook.com/me/posts?access_token= ...

這是否解決了您的問題?

+0

是的,非常感謝! – ben 2011-05-08 23:19:36

2

您正在錯誤地訪問該帖子的結束點。 Facebook上的每個對象都有唯一的ID。現在,恰巧它們通過將不同的ID附加在一起形成它(您的文章是一個例子,<user_id>_<post_id>,並且對該文章的評論是<user_id>_<post_id>_<comment_id>)。 Facebook沒有公開承認這一點(並非他們真的必須,這很明顯),這使得我依賴這種範式來訪問圖中的數據。這是因爲Facebook可以在任何時候改變它,而且他們沒有說過「是將這兩個id附加在一起,並且可以從該圖的這個部分獲得一些有意義的東西」這一事實意味着他們不需要通知任何人這種變化,你可能會在有一天醒來,你的應用程序被完全破壞,你必須儘快找到解決方法,同時還要縮短時間。

圖形api的工作原理是通過向API請求該唯一ID來訪問Facebook上的對象。所以,你不需要去graph.facebook.com/<user_id>/posts/<post_id>訪問(也不能訪問)你的帖子。相反,你去graph.facebook.com/<post_id>。您從圖上的/<user_id>/home/<user_id>/feed端點獲得post_id。沒有必要修改post_id以便從圖中獲取關於它的信息。

希望幫助

相關問題