检查event-rsvp状态并显示禁用/启用RSVP按钮
我仍然有点不确定如何在文档中找到它,但我想检查登录用户是否有RSVP'ed到一个fb事件或不,并显示“我参加”按钮取决于...我已经得到了登录按钮挂钩和适当的权限(user_events和rsvp_event),只是不知道如何使用JS SDK去解决这个问题。检查event-rsvp状态并显示禁用/启用RSVP按钮
您可以查询event_member
FQL表,是这样的:
FB.api(
{
method: 'fql.query',
query: 'select rsvp_status from event_member where eid = "EVENT_ID" and uid=me()'
}, function(response) {
alert(response[0].rsvp_status);
}
);
将返回(警报)是这样的:declined
您可以使用图形API来做到这一点。有两种情况可能是有趣的:(1)对于一个事件,你想列出用户是否参加,以及(2)对于一个用户,你想列出他们参加的事件。您需要两个方案的user_events
权限。
对于(1):HTTP GET/EVENT_ID /参加。这将返回一个包含{id, name, rsvp_status}
字段的对象数组。找到你感兴趣的用户ID,如果他们已经RSVP'd,那么rsvp_status
字段会告诉你他们是否参加。
对于(2):HTTP GET/USER_ID/events。这将返回具有多个字段的用户的所有事件,但也会如上所述返回{id, name, rsvp_status}
字段。这一次,查找您感兴趣的事件ID,然后rsvp_status
字段会告诉您当前用户是否参加,不参加,可能出席,还是没有RSVP'd(即rsvp_status
是unsure
)。
其实,有一个更简单的方法来做到这一切。 FQL查询的问题是,在您提交RSVP以显示状态后,会有15-30秒的延迟。但是这在没有分页的图形API中起作用。在这种形式尝试GET请求:
/[事件ID] /邀请的用户= [USER_ID] & =的access_token [的access_token]
它会返回与rsvp_status的数据结构,如果用户已经RSVPed根本不包括那些用户没有受到技术性“邀请”的公共活动。如果数据结构是空白的,那么他们根本没有RSVP。
这没有奏效,我得到一个错误,说“未捕获的TypeError:无法读取未定义的属性'rsvp_status'”。粘贴在您的确切代码中,除了我将EVENT_ID替换为事件的实际eid ... – Steven
好的,得到了这个工作,谢谢! – Steven
@Steven,欢迎您! – ifaour