Facebook Api 最多只返回 25 个事件?

Posted

技术标签:

【中文标题】Facebook Api 最多只返回 25 个事件?【英文标题】:Facebook Api only returns 25 events max? 【发布时间】:2011-01-20 21:44:11 【问题描述】:

我正在测试我的新 iframe 应用,

尝试使用图形 api 获取用户的所有事件。

$tempevent = $facebook->api('/me/events', 'get', array("fields"=>"id, name, start_time"));

所以它只返回 25 个事件 .. 最远的事件。

有什么想法吗?

刚刚检查了 JS 版本.. 相同的结果。

FB.api('/me/events', function(response) 
    console.log("event id: " + response.data[0].id); //k
    console.log("event id: " + response.data[24].id);  //k 
    console.log("event id: " + response.data[25].id); //not k 
);

【问题讨论】:

【参考方案1】:

使用 FQL:

$tempevent = $this->facebook->api(array(
    'method' => 'fql.query',
    'query' => 'SELECT eid, name, start_time FROM event WHERE eid IN (SELECT eid FROM event_member WHERE uid = me())'
));  

说明: 在这里,您从event 表中获取所有事件,其中 事件 id (eid) 是 IN 用户 me() 链接到的 event_member 表,无论他是attendingunsuredeclinednot_replied

【讨论】:

@Sven Koluem:用解释和参考更新了我的答案。 谢谢完美的解释。您是否还知道如何获取我的应用程序/或我的应用程序的所有用户生成的所有事件.. 以获取他们的事件? @Sven Koluem:通过您的应用程序代表用户创建的事件。现在“如何获取我的应用程序的所有用户? " 似乎是一个具有挑战性的问题! 是的,这是一次获取所有事件的最佳方式;) @ifaour 你是什么意思..“代表用户”,我想给用户一个关于其他用户的所有事件的概述。但确实似乎相当困难。【参考方案2】:

我建议您尝试访问以下 URL https://graph.facebook.com/me/events?access_token=YOUR_ACCESS_TOKEN。向下滚动。您将看到 facebook 返回分页结果。除了 data 参数(由 sdk 返回)之外,您还有另一个 paging 参数。这个包含指向更多结果的链接,称为nextprevious。使用它们检索更多事件。

此外,如果您想在每页检索更多事件,您可以在 access_token 中添加 limit 参数。例如:https://graph.facebook.com/me/events?access_token=YOUR_ACCESS_TOKEN&limit=50

祝你好运。

【讨论】:

根本不明白。如何在php中做到这一点? $facebook->api('/me/events', 'get', array("fields"=>"id, name, start_time",'access_token' => $facebook->getAccessToken(), 'limit' => 50)); ?? 您可以通过直接获取该 url 来实现,例如 json_decode(file_get_contents(url))。但是使用 ifaour 的建议,我只是向您展示了 facebook 在使用图形 api 时为您提供了所有事件,但分页

以上是关于Facebook Api 最多只返回 25 个事件?的主要内容,如果未能解决你的问题,请参考以下文章

Typeahead 总是最多只显示 5 个建议

Facebook Graph API返回页面事件的空数据响应[重复]

百度地图API 批量坐标转换

为什么linux进程名匹配最多只支持15个字符?

如何使用新的 facebook graph api v2.4 从页面获取事件

使用图形 api 获取 facebook 事件源