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
表,无论他是attending
、unsure
、declined
或not_replied
。
【讨论】:
@Sven Koluem:用解释和参考更新了我的答案。 谢谢完美的解释。您是否还知道如何获取我的应用程序/或我的应用程序的所有用户生成的所有事件.. 以获取他们的事件? @Sven Koluem:通过您的应用程序代表用户创建的事件。现在“如何获取我的应用程序的所有用户? " 似乎是一个具有挑战性的问题! 是的,这是一次获取所有事件的最佳方式;) @ifaour 你是什么意思..“代表用户”,我想给用户一个关于其他用户的所有事件的概述。但确实似乎相当困难。【参考方案2】:我建议您尝试访问以下 URL https://graph.facebook.com/me/events?access_token=YOUR_ACCESS_TOKEN
。向下滚动。您将看到 facebook 返回分页结果。除了 data
参数(由 sdk 返回)之外,您还有另一个 paging
参数。这个包含指向更多结果的链接,称为next
和previous
。使用它们检索更多事件。
此外,如果您想在每页检索更多事件,您可以在 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 个事件?的主要内容,如果未能解决你的问题,请参考以下文章
Facebook Graph API返回页面事件的空数据响应[重复]