2017-11-11 197 views
0

我試圖使用restfb從給定的Facebook頁面的抓取後的名單(JAVA)獲取後列出

列表fbPages = Arrays.asList( 「178697151159 /帖」, 「538560813021153 /帖」 ); JSONObject fetchObjectsSubResults = client.fetchObjects(fbPages,JsonObject.class,Parameter.with(「fields」,「shares,created_time」),Parameter.with(「limit」,5));};

但我發現了來自Facebook的API運行時錯誤如下..有任何機構可以幫助我解決這個或者是在線程「主要」 com.restfb這個不可能的(

例外。異常.FacebookOAuthException:接收到類型爲OAuthException的Facebook錯誤響應:(#803)您請求的某些別名不存在:178697151159/posts ?, 538560813021153/posts?(code 803,subcode null) at com.restfb.DefaultFacebookClient $ Default.GraphFacebookExceptionMapper.exceptionForTypeAndMessage(DefaultFacebookClient.java:1278) at com.restfb.DefaultFacebookClient.throwFacebookResponseStatusExceptionIfNecessary(DefaultFacebookClient.java:1195) at com.restf b.DefaultFacebookClient.makeRequestAndProcessResponse(DefaultFacebookClient.java:1136) 在com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:1058) 在com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:1020) 在com.restfb。默認的FacebookClient.fetchObjects(DefaultFacebookClient.java:476) at main.main(main.java:75)

+0

這看起來像你正在使用的方法,預計只傳遞頁面_ids_,但你傳遞'page-id/posts'到它,圖形API不識別爲頁面id那就不足爲奇了。)你需要去檢查你在那裏使用的SDK /客戶端庫的文檔,看看_right_方法是用什麼id來指定你想要的邊/字段。 – CBroe

回答

0

我建議每頁使用1個調用。所以它應該是這樣的:

Connection<Post> postConnection = client.fetchConnection(pageId+ "/posts", Post.class, Parameter.with("fields","shares,created_time"), Parameter.with("limit","5")); 

根據你的使用情況,您可以循環得到所有職位或結果與postConnection.getData()集的第一頁取數據在postConnection與運行。

在這兩種情況下,您最終都可以使用Post類型並訪問您感興趣的字段。其他字段爲空。

順便說一句,在單個呼叫中使用多個ID或者一個接一個地請求這些ID對Facebook調用沒有任何影響。內部計算的金額相同;在你的情況下2.

+0

此外,我想解釋您的問題開始的呼叫的正確語法。 在Facebook上從多個頁面獲取帖子的正確端點看起來像是'graph.facebook.com/posts?id = 178697151159,538560813021153'。 我認爲這在RestFB中不受支持,只有沒有端點的調用才能工作。但這只是一個猜測,我沒有深入檢查這個電話。如果這很重要,你可以在Github上打開一個問題... – Norbert

+0

@Norbet是的,它是爲一頁工作,這就是爲什麼我試圖以同樣的方式使用多個頁面(我知道這是愚蠢的)。實際上,我擔心的是我可以提供的api電話數量,但如果我一次打電話,包括所有的頁面id,則會有所不同。如果沒有區別,我可以使用循環。謝謝。順便說一句,你有沒有任何想法如何減少這個傀儡的API調用數量。 –

+0

取決於您的用例。如果你想獲取所有帖子,你應該增加限制,因爲這是每頁的限制。如果你只需要前5個帖子,一切都好。在這種情況下唯一應該幫助的是webhook。只要Feed上發生新的事情,您就可以訂閱頁面訂閱源並收到更新。例如,如果寫了一篇新文章。所以,如果有新的東西,你只需要從Facebook調查數據。 – Norbert