通过Facebook iOS SDK获取我的所有活动

sen*_*nel 14 iphone sdk facebook ios

在我的iOS应用程序中,我使用以下代码获取访问令牌:

    [self.facebook authorize:[NSArray arrayWithObjects:@"user_events",
@"friends_events",  nil]];
Run Code Online (Sandbox Code Playgroud)

然后我使用以下代码请求我的事件:

[self.facebook requestWithGraphPath:@"me/events" andDelegate:friendsVC];
Run Code Online (Sandbox Code Playgroud)

但作为回应,我只收到我已经回复的事件.我想得到我所有的活动,包括我没有回复过的活动.

有任何想法吗?

Gun*_*son 6

请求

/我/事件

只为您提供用户(可能)计划参加的活动.响应不包括用户被邀请(但未响应)或拒绝的事件.

还有其他请求可能会有所帮助:

您可以检查用户是否被邀请参加如下活动:

/ EVENT_ID /邀请/ USER_ID

可以通过事件检查RSVP状态:

/ EVENT_ID /参加

/ EVENT_ID /也许

/ EVENT_ID /下降

/ EVENT_ID /邀请

其中每个请求返回具有查询RSVP状态的用户列表.


Jui*_*ter 2

您可以使用下一个 FQL 查询获取事件列表,无论其 RSVP 状态如何:

SELECT eid, name, venue, location, start_time FROM event WHERE eid IN (
  SELECT eid from event_member WHERE uid = me()
)
Run Code Online (Sandbox Code Playgroud)

这不会返回每个事件的 RSVP 状态,而只会返回事件详细信息。您可能希望使用批量请求来获取事件的详细信息和rsvp_status相同的查询。

https://graph.facebook.com/?method=post&batch=[
  {
    "name":"rsvp",
    "relative_url":"fql?q=SELECT+eid,rsvp_status+FROM+event_member+WHERE+uid=me()",
    "omit_response_on_success":false
  },
  {
    "relative_url":"?ids={result=rsvp:$.data.*.eid}"
  }
]
Run Code Online (Sandbox Code Playgroud)

有关您可能希望检索的其他字段的详细信息,event请参阅表格文档。event_member

笔记:

从 7 月 5 日开始,甚至访问公共活动也需要访问令牌。