让Facebook好友参加活动?

时间:2013-05-09 12:35:28

标签: iphone ios facebook facebook-graph-api

我如何才能看到哪些朋友参加Facebook活动?我可以使用Facebook SDK获取所有与会者的列表,withGraphPath:@“eventId / attendnding /".

使用Graph API我甚至想要什么?我读了一些关于如何使用FQL实现这一点的答案,但不知道如何在iOS中实现它。我想出的唯一选择是让所有朋友和所有与会者互相交叉引用他们,但这非常不方便。

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

4 个答案:

答案 0 :(得分:2)

这是来自Facebook提供的教程

  

您可以检查特定用户是否对某个事件回答“是”   向/ EVENT_ID /参与/ USER_ID发出HTTP GET。这些操作   要求非公共的user_events或friends_events权限   事件并返回一个名为,id和的对象数组   rsvp_status字段。检查单个用户时,将显示空数据   如果用户没有对该事件回答“是”,则返回。

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

  

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

使用 / EVENT_ID /参加/ USER_ID 查看参加活动的朋友

答案 1 :(得分: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()))

答案 2 :(得分:0)

只需使用{event id} /参加,然后根据您的实际朋友列表对其进行过滤。

答案 3 :(得分:0)

使用FQL QUery尝试:

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

使用Graph API:

/YOU_EVENT_ID_HERE/attending

这将返回“Attending Friends”用户ID(uid)。

ASH