4

如何查看我的哪些朋友参加了 Facebook 活动?我可以使用 GraphPath:@"eventId/attending/" 获取使用 Facebook SDK 的所有与会者的列表。

使用 Graph API 甚至可以实现我想要的吗?我阅读了一些关于如何使用 FQL 实现这一点的答案,但不知道如何在 iOS 中实现它。我想出的唯一选择是让所有的朋友和所有的与会者相互参照,但这很不方便。

那么,如何让我的 Facebook 朋友只参加活动?

4

4 回答 4

2

这是来自 Facebook 提供的教程

您可以通过向 /EVENT_ID/attending/USER_ID 发出 HTTP GET 来检查特定用户是否对事件响应“是”。这些操作需要非公共事件的 user_events 或 friends_events 权限,并返回具有 name、id 和 rsvp_status 字段的对象数组。检查单个用户时,如果用户未对事件响应“是”,则将返回空数据。

您可以通过检查此链接中的事件类别来检查它:

http://developers.facebook.com/docs/reference/api/event/

使用/EVENT_ID/attending/USER_ID查看哪个朋友正在参加活动

于 2013-05-09T13:31:58.157 回答
1

好的,所以我找到了解决问题的方法......实现我想要的唯一方法是通过 FQL。基本上,它会在 Facebook 服务器上与与会者交叉引用您的朋友,并且您只会收到您要求的数据(在我的情况下是用户 ID、姓名、图像)。我还没有想出如何设置限制和偏移量,但我不需要它,我认为也可以通过 FQL...

这是我的代码:

-(void)getFriendsAttending{
    NSLog(@"getting friends");
    NSString *fql = [NSString stringWithFormat:@"SELECT uid, name, pic FROM user WHERE uid IN (SELECT uid FROM event_member WHERE eid = %@ AND rsvp_status = 'attending' AND uid IN (SELECT uid2 FROM friend WHERE uid1 = me()))", fbID];

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObject:fql forKey:@"q"];
    [FBRequestConnection startWithGraphPath:@"/fql"
                                 parameters:params
                                 HTTPMethod:@"GET"
                          completionHandler:^(FBRequestConnection *connection,
                                              id result,
                                              NSError *error) {
                              if (error) {
                                  NSLog(@"Error: %@", [error localizedDescription]);
                              } else {
                                  NSLog(@"Friends at event %@: %@", fbID, result);
                              }
                          }];

}

为了清楚起见,这里是纯 FQL 查询(123456789 - 作为事件 ID):

SELECT uid, name, pic FROM user WHERE uid IN (SELECT uid FROM event_member WHERE eid = 123456789 AND rsvp_status = 'attending' AND uid IN (SELECT uid2 FROM friend WHERE uid1 = me()))
于 2013-05-10T08:43:43.807 回答
0

只需使用 {event id}/attending,然后根据您的实际朋友列表过滤它。

于 2013-05-09T13:14:21.080 回答
0

使用 FQL 查询尝试:

SELECT uid FROM event_member WHERE eid = YOU_EVENT_ID_HERE AND rsvp_status = 'attending'

使用图形 API:

/YOU_EVENT_ID_HERE/attending

这将返回“参加朋友”用户 ID (uid)。

于 2013-07-19T04:28:42.483 回答