2013-09-01 29 views
0

我這段代碼得到的帖子:FacebookClient.Get(「/ PAGE_NAME /飼料」)總是返回只有25最新的帖子

facebookClient = new FacebookClient(accessToken); 
var url = string.Format("/{0}/feed", pageName); 
IDictionary<string, object> feed = facebookClient.Get(url) as dynamic; 
JsonArray posts = feed.First().Value as dynamic; 

我試圖讓例如幾頁(可口可樂職位) - 代碼總是隻返回25個最新帖子。如何獲得所有帖子?

回答

0

如果您嘗試將&limit=30添加到您擁有的網址(/{0}/feed),您應該會看到30個帖子(我今天沒有測試它,但它一直工作到一週前...它應該仍然有效)。 所以,也許你需要添加一個變量來構建不同的網址。讓我知道它是否有效。

+1

不,不。如果以這種方式指定限制: 'dynamic parameters = new ExpandoObject(); parameters.limit = 50; parameters.offset = offset;' 並在一個循環中發出請求 - 它幾乎是好的,但無論如何不會加載所有帖子 - 在某些時候,由於某種原因它返回一個空的響應... – Zharro

+0

以及我測試過它和https://developers.facebook.com/tools/explorer/與此URL MyUserid /飼料?限制= 50它給你一些結果。然後它說「分頁」:{ 「previous」:「https://graph.facebook.com/MYID/feed?limit=50&since=1378036233」, 「next」:「https://graph.facebook.com/MYID/feed?limit = 50&until = 1376928537「這就是你要找的東西? } – tattvamasi

+0

好吧我已經閱讀了有關分頁的內容,並且已經爲你檢索了它https://developers.facebook.com/blog/post/478/。我希望這就是你要找的。我從來沒有這樣做過(我傾向於用另一種方式來限制......) – tattvamasi

1

因此,除了通過後說Zharro使用極限的參數值和偏差,也可以養活一個和前一個分頁值到不用彷徨方法:

dynamic object = fbClient.Get("query/address", new { 
    limit = ## 
    offset = ## 
}); 
... 
Facebook.Get(object.paging.next) // Or Facebook.Get(object.paging.previous) 

注:設置極限值非常高只會被忽略(例如,即使有10,000個進給值,設置限制爲10,000實際上也不會給您10,000個值)。您需要在分頁地址上使用偏移或查詢。

相關問題