![](/img/trans.png)
[英]Facebook Graph API v2.3 query @"me/taggable_friends" give details of all friends without birthday . how to get friends details with their birthday?
[英]iOS -deprecated permission-facebook friends birthday using Graph API
我是iOS的新手。 我正在尝试从Facebook帐户获取所有朋友的生日 。 我关注了Developers.facebook
我已经请求了所有必要的权限: user_friends
, friends_birthday
, read_stream
。 我还在Graph Api Explorer中设置了权限。
首先,我使用了图形路径: @"/me/friends?fields=name,id,birthday"
。 它仅返回使用该应用程序的朋友的姓名和ID 。
我在网上搜索并尝试了@"/me/taggable_friends"
。 在开发人员站点中,我们只能为此taggable_friends访问三个字段: id,name,picture
。
我发现Facebook已弃用好友详细信息权限 。 请参阅https://developers.facebook.com/docs/apps/upgradeing
-(void)pickFriendsClick {
NSArray *permissions = [[NSArray alloc] initWithObjects: @"user_birthday",@"friends_hometown",@"friends_birthday",@"friends_location",nil]; if (![[FBSession activeSession]isOpen]) { if (APP.fb) { APP.fb =[[FBSession alloc]initWithPermissions:permissions]; } } FBRequest *friendRequest = [FBRequest requestForGraphPath:@"/me/taggable_friends"]; [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]); }}]; }
从v2.0中删除的权限的完整列表。 您的应用不应向Facebook Ver 2.0要求以下任何内容:
create_event
manage_friendlists
read_requests
user_checkins
user_notes
user_online_presence
user_questions
user_subscriptions
xmpp_login
friends_about_me
friends_actions.books
friends_actions.fitness
friends_actions.music
friends_actions.news
friends_actions.video
friends_actions:APP_NAMESPACE
friends_activities
friends_birthday
friends_checkins
friends_education_history
friends_events
friends_games_activity
friends_groups
friends_hometown
friends_interests
friends_likes
friends_location
friends_notes
friends_online_presence
friends_photos
friends_questions
friends_relationships
friends_relationship_details
friends_religion_politics
friends_status
friends_subscriptions
friends_videos
friends_website
friends_work_history
参考: https : //developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids
你只能取朋友
1. id,name,picture only.
我已经在新的Facebook SDK中通过此代码获取了朋友。 这可能会有所帮助。
NSArray *permissions = [NSArray arrayWithObjects:@"email", @"user_birthday",@"friends_hometown",@"friends_birthday",@"friends_location",@"publish_stream",@"user_friends",@"public_profile",nil];
[self appDelegate].session = [[FBSession alloc] initWithPermissions:permissions];
[[self appDelegate].session openWithCompletionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
if(!error)
{
NSLog(@"success");
[self fetchFriends];
}
else
{
NSLog(@"failure");
}
}];
然后方法获取朋友是
-(void)fetchFriends
{
if ([self appDelegate].session.isOpen)
{
[FBSession setActiveSession:[self appDelegate].session];
FBRequest *friendRequest = [FBRequest requestForGraphPath:@"/me/friends?fields=name,picture,birthday,location"];
[ friendRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSArray *data = [result objectForKey:@"data"];
NSLog(@"response : %@",data);
for (FBGraphObject<FBGraphUser> *friend in data)
{
NSLog(@"name : %@ , bday : %@", [friend name],[friend birthday]);
[tempArray addObject:friend];
}
}];
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.