【问题标题】:Facebook API get events CREATED BY friendsFacebook API 获取朋友创建的事件
【发布时间】:2010-09-14 16:41:14
【问题描述】:

我正在开发需要检索我的一些朋友创建的事件的 facebook 应用程序。 标准 SQL 查询如下所示:

NSString *fql1 = @"SELECT "
 @"eid, name, tagline, id, pic_small,host, description, start_time, creator "
 @"FROM "
 @"event "
 @"WHERE "
 @"creator = 1111111111 OR creator = 2222222222 OR creator = 333333333";

Facebook 只允许按索引字段(在此表中为 eid)过滤表。我假设我可以构建多查询。任何人都可以帮忙吗?我花了一些时间谷歌搜索它没有看。我只需要一个查询,因此目前学习整个 fbl 对我来说毫无意义。

顺便说一句:有一个函数 events.get - 您可以按 uid 过滤(文档说):

参数:uid - 按与 a 关联的事件过滤 具有此 uid 的用户。

关联在什么意义上?是那些创作者的 uid?,被邀请,参加还是可能?为什么 facebook 文档如此令人沮丧? 当我使用 uid 参数尝试 events.get 时,它返回的创建者 ID 与 uid 参数不同。 Graph API 函数:uid/events 返回用户已被邀请、参加或其他状态但不一定由他创建的事件。

我在这里缺少什么?我为我的应用程序授予了必要的权限,它连接、获取朋友的事件列表,但没有获取我想要的事件。

看起来很简单,但我找不到直接的解决方案。

我将不胜感激。

【问题讨论】:

  • Multiquery 只是一个花哨的名称,可以在一个请求中运行许多常见的 fql 查询,它们不会给你任何新的东西。如果您没有事件 ID,则无法使用 FQL 按创建者字段进行搜索。你最好的选择可能是探索events.get,但我也不知道它会返回什么。
  • 当我使用参数 uid 请求 events.get 时,我得到了一些事件,但没有一个不是由 uid 创建的。这个方法到底返回了什么?

标签: events api facebook


【解决方案1】:

你可以这样做:

SELECT 
    eid, name, tagline, pic_small,host, description, start_time, creator 
FROM 
    event 
WHERE 
    eid IN (
        SELECT 
            eid 
        FROM 
            event_member 
        WHERE 
            uid=111 OR uid=222) AND 
    (creator=111 OR creator=222)

基本上,这表示获取用户 111 或 222 是其中成员的事件,只返回他们创建的事件。因为 eid 是一个可索引字段,所以 FQL 可以接受,并且很乐意为您进行额外的 (creator=111) 修剪。

【讨论】:

  • 这看起来很有希望。但是 - 我得到:操作无法完成。 (facebookErrDomain 错误 602。)。这个错误是什么意思?我是否在某个地方弄乱了请求参数或不允许查询?
  • 抱歉 id 不是有效字段,它是事件表的 eid。我将编辑查询以解决此问题。
  • 是的。我没有注意,因为我知道事件表中有 nid 列。 developers.facebook.com/docs/reference/fql/event。谢谢你。错误消失了,我得到了回应。但是结果为 0,我知道应该有一些.... 嗯 .. 我不能投票给这个答案,直到我检查出来。
  • 对不起。你的答案很完美。我用创建者 ID 搞砸了一些东西。非常感谢。我从您的示例中学到了很多,特别是您仍然可以通过非索引字段缩小 facebook 结果,只要您在可索引过滤器之后使用 AND 加入它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多