检索由具有 FQL 的组主持的事件

Posted

技术标签:

【中文标题】检索由具有 FQL 的组主持的事件【英文标题】:Retrieve events hosted by a group with FQL 【发布时间】:2012-03-16 07:45:17 【问题描述】:

我想知道一个组托管的事件如何连接到该组,以便我可以检索特定组中的所有事件(我只有组 ID)。 这需要使用 FQL 和 php SDK 来完成(我知道这些方法,但我无法找到有关组和事件之间连接的任何信息)。

【问题讨论】:

【参考方案1】:

同时,GROUP_ID/events 在这里对我来说效果很好。

如果您查看以下内容,则可以使用 REST API: http://developers.facebook.com/docs/reference/rest/events.get/

他们说: “uid 可以替换为 gid,以便获取由组而不是单个用户托管的事件。”

我尝试通过 Graph API Explorer 获取我加入的组的事件,它和我制作的一个小 restFB (Java) 实现一样有效。

那么,这可能是您网站的权限问题吗?

【讨论】:

【参考方案2】:

看起来你无法做到这一点。

Group object 的文档没有提及事件集合,如果您尝试从图形 api 获取 /GROUPID/events,则会收到“不支持的获取请求”错误消息。

group table 的 fql 文档也没有关于事件的任何内容,event table 仅由事件 id 索引,这意味着无法在事件和组之间建立联系。

【讨论】:

嗯...没什么新鲜的(我在发布问题之前通过 facebook 文档进行了搜索)。我期待的是我可以做的事情,而不是他们不提供的东西。考虑到事件显示在组页面上的事实,它们之间必须存在某种联系(正如您所说,GRAPH API 不识别/支持 /GROUPID/events 调用)。我正在考虑 FQL,因为它在数据库表级别执行请求,而不是某些 GET 调用(需要 url 解释等)。 Facebook 并没有为您提供它拥有的所有数据/连接,而且我怀疑 fql 表实际上代表真正的数据库表,它只是另一个用于从图中查询数据的 api。可能会问你想对数据做什么?也许还有另一种方法。 任务是获取一个组主持的所有活动(我只有组 ID)并将它们显示在网站上。没那么难,但话又说回来,一点也不容易。 抱歉,在这种情况下,我不知道你是如何做到这一点的。 感谢您的帮助【参考方案3】:

直到几周前,以下内容完全可以满足您的需要

SELECT name FROM event WHERE eid IN
(SELECT eid FROM event_member WHERE uid = <uid from group>)

但 api 更改为使用组对象,因此代码不再工作。遗憾的是,我还没有找到其他方法来获取特定组的事件。

【讨论】:

【参考方案4】:

Facebook 之前已经打破了这个。 : (

看看我能不能追查到上次我们是如何修复它的。


同时,我能得到的最接近的是:

https://graph.facebook.com/fql?q=SELECT eid, name, host FROM event WHERE eid IN (SELECT eid FROM event_member WHERE uid = $uid AND start_time > 0) AND host = '$group_name'&access_token=$token

变量:

$uid = 组管理员的 uid $group_name = 组名 $token = 具有 user_events 权限的上述组管理员的访问令牌

我能看到的唯一缺点是:

    需要身份验证令牌(即使对于公共组);和 必须邀请所使用的管理员参加所有活动(无论如何通常都是这种情况)。如果未邀请管理员,则该活动似乎不会显示。

更新: Facebook 错误报告 - 请添加您的支持,以便我们修复此问题: http://developers.facebook.com/bugs/197158423732088

【讨论】:

【参考方案5】:

尝试更新的 Wallflux 事件:http://wallflux.com/events/115227675156013

【讨论】:

以上是关于检索由具有 FQL 的组主持的事件的主要内容,如果未能解决你的问题,请参考以下文章

查找公共事件的 FQL 查询

如何使用图形 api/FQL 从 facebook 获取过去/结束的公共事件?

FQL 事件 pic_cover 返回 null

我如何使用 FQL 查询所有事件而不使用标记为 * 的可索引列

使用 Facebook Graph API 按位置搜索公共事件

获取没有客户端身份验证的页面的公共事件列表