2010-08-03 77 views
22

我想要得到朋友的生日清单。如何使用facebook api获取朋友的生日清单?

但如何找到使用我的API我不知道。

+14

它可以帮助你去通过,并接受一些你的23个问题的答案......这里的人会更容易帮助,如果他们知道他们也许能得到一些代表对他们的努力... – 2010-08-03 04:41:47

+1

什么这与android有关吗? – 2010-08-03 04:42:28

+5

哪种语言?什么平台?示例代码?错误消息?没有公认的答案..这就像在如何不使用SO :)可能要考虑通过你如何处理这个网站.. – dmp 2010-08-03 08:51:07

回答

17

注意:这已不再可能。请参阅this answer

在你用来检索信息的环境中使用OpenGraph API。生日在用户信息对象中,请参阅文档:http://developers.facebook.com/docs/reference/api/user

+6

我将是有益的,如果你好心给一个演示代码与此API访问的生日列表中的大师班。如果可能的话!!!!!!!!!!! – 2010-08-13 06:18:22

+1

你可以使用图形API https://graph.facebook.com/me/friends?fields=id,name,birthday&access_token=生日是确保您有权限给你的朋友列表和生日或将返回空值。 – Underdog 2012-08-01 08:18:03

6

您必须使用FQL获取朋友的生日清单。

FQL会(只需更换您的访问令牌):

“https://api.facebook.com/method/fql.query?query=select名,birthday_date从用户那里UID在(从朋友选择UID2其中UID1 =我())& =的access_token your_access_token

20

您还可以使用Facebook的API:

$friends_birthday = $facebook->api("/me/friends?fields=id,name,birthday"); 

还必须有权限friends_birthday在您的应用程序的范围

+3

请提防日期是相对于用户的位置,这样*您需要'user_friends'以及它可能是MM/DD/YYY或DD/MM/YYYY或DD/MM或MM/DD – ysrb 2014-01-13 06:53:14

0

得到与图形API,迭代JSON数据阵列的全部好友列表,然后检查生日= ..今天是

6

这是链接对于图形API浏览器

https://developers.facebook.com/tools/explorer/?method=GET&path=me去的链接和点击获取访问Tocken你可以有一个弹出的选择权限 并选择您的访问令牌。 并在节点部分选择你想要的字段(例如选择好友并作为朋友中的子链接选择生日)和GET查询点击提交然后你可以有一个朋友的生日和id作为你的Json数据。

0

你可以得到好友列表中的ios这样:

- (IBAction)pickFriendsClick:(UIButton *)sender { 
    NSArray *permissions = [[NSArray alloc] initWithObjects: 
         @"user_birthday",@"friends_hometown", 
         @"friends_birthday",@"friends_location", 
         nil]; 
    [FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:YES completionHandler:nil]; 
    FBRequest *friendRequest = [FBRequest requestForGraphPath:@"me/friends?fields=name,picture,birthday,location,updated_time,email"]; 
    [ friendRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
    NSArray *data = [result objectForKey:@"data"]; 
    NSMutableArray *friends= [data mutableCopy]; 
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"updated_time" 
                    ascending:TRUE]; 
    [friends sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 

    for (FBGraphObject<FBGraphUser> *friend in friends) { 
     NSLog(@"%@:%@", [friend name],[friend birthday]); 
    }}]; 
} 

感谢。

0

尝试这一点,只需要几行

FBRequest * request = [FBRequest requestForGraphPath:@"me/friends? 
              fields=id,name,birthday&limit=5000"]; 

[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) 
{ 
    if(error == nil){ 

     NSLog(@"%@",result); 
    } 
}]; 
17

由于图形API的2.0版,it's不可能得到朋友的生日了。您只能使用user_birthday权限获得授权用户的生日。的修改记录的详细信息:https://developers.facebook.com/docs/apps/changelog

只有一个其他可能性:如果好友授权的应用程序与user_birthday,你可以得到他的生日与以下电话:/friend-id?fields=birthday

当然,你需要对用户进行授权与user_friends也是为了使这项工作。而且您还可以存储所有授权用户的生日,并且不会浪费额外的API调用。

+0

I *想。 – phwd 2015-02-26 16:57:21

+0

好吧,你没有得到任何朋友,所以我认为这将是显而易见的:) - 但我会添加它,只是为了安全。对大家来说可能并不明显。 – luschn 2015-02-26 16:57:54

+2

你知道Facebook开发者..明显是最远的东西 – phwd 2015-02-26 16:58:44

0

FB.api('me/friends?fields=id,name,birthday')不工作作为2017年9月12日。

下面是当我尝试打终点从图形资源管理器工具的调试消息。

Only friends who installed this app are returned in API v2.0 and higher. total_count in summary represents the total number of friends, including those who haven't installed the app 

对于只返回该用户的好友列表,你可以尝试击中有效的访问令牌

FB.api('me/friendlists') 

下面的点,但请注意,你需要read_custom_friendlists从用户权限。