2010-08-03 6 views
22

Я пытаюсь получить список друзей на день рождения.Как получить список друзей друга с помощью facebook api?

Но как найти, используя мой api, я не знаю.

+14

Это может помочь вам пройти и принять ответы на некоторые из ваших 23 вопросов ... люди здесь будут с большей вероятностью помогать, если они знают, что они могут получить какую-то репутацию за свои усилия ... –

+1

Что это связано с андроидом? –

+5

какой язык? какая платформа? образец кода? Сообщения об ошибках? нет принятых ответов .. это похоже на мастер-класс в том, как не использовать SO :), возможно, захочется продумать, как вы подходите к этому сайту .. – dmp

ответ

17

Примечание: Это невозможно. См. this answer.

Используйте API OpenGraph в любой среде, которую вы используете для извлечения информации. День рождения находится в объекте информации пользователя, см. Документы: http://developers.facebook.com/docs/reference/api/user

+6

Было бы полезно, если вы любезно предоставите демо-код для доступа к списку дня рождения с помощью этого api , Если возможно!!!!!!!!!!! –

+1

вы можете получить дни рождения, используя график api https://graph.facebook.com/me/friends?fields=id,name, birthday&access_token=< ваш токен здесь> убедитесь, что у вас есть разрешение на список друзей и день рождения или он вернется ноль. – Underdog

8

Во-первых, прочтите readme на project page to get started with the SDK.

Затем вам необходимо посмотреть на API reference и, более конкретно, на номер user profile section.

После того, как вы сделали все это, вы получите объект JSON, который вы можете проанализировать с помощью org.json package в Android SDK.

Надеюсь, это поможет вам.

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

Обратите внимание, что дата относится к языку пользователя, поэтому может быть mm/dd/yyy или dd/mm/yyyy или dd/mm или mm/dd – ysrb

0

получить полный список друзей с Graph API, итерации массива JSON данных, а затем проверить на день рождения = сегодня .. что

6

Это ссылка для Graph API Explorer,

https://developers.facebook.com/tools/explorer/?method=GET&path=me перейти по ссылке и кликните на получить доступ Tocken вы можете иметь всплывающее окно для выберите разрешений и выберите маркер доступа. и в разделе узла выберите нужные вам поля (например, выберите друзей и как подкинь в друзья выберите день рождения) и GET запрос, нажав на SUBMIT, тогда вы можете иметь день рождения и идентификатор друга вместе с вашим Json Data.

0

вы можете получить список друзей в КСН таким образом:

- (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

С v2.0 от API Graph, подмигнул не возможен получить друг дни рождения больше. Вы можете получить только день рождения авторизованного пользователя, используя разрешение user_birthday. Смотрите список изменений для получения дополнительной информации: https://developers.facebook.com/docs/apps/changelog

Существует только одна возможность: Если друг уполномочил приложение с user_birthday, вы можете получить свой день рождения со следующим вызовом: /friend-id?fields=birthday

Конечно, вы должны разрешить пользователям с user_friends тоже, чтобы сделать эту работу. И вы также можете просто сохранить день рождения всех авторизованных пользователей и не тратьте на него лишний вызов API.

+0

Я * думаю * вам нужны 'user_friends'. – phwd

+0

ну, у вас нет друзей без этого, поэтому я думал, что это будет очевидно :) - но я добавлю его, чтобы быть в безопасности. это может быть не очевидно для всех. – luschn

+2

Вы знаете разработчиков Facebook .. очевидна самая дальняя вещь – phwd

0

FB.api('me/friends?fields=id,name,birthday') не работает с 09/12/2017.

Ниже приведено отладочное сообщение из инструмента-графика, когда я пытаюсь попасть в конечную точку.

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 разрешения от пользователя.

Смежные вопросы