我正在制作一款利用用户Facebook好友列表的应用。我的解析后端有一个名为fbFriendsList
的数组类型列。环顾四周后,到目前为止,我有这个:
//my permission array
NSArray *permissionsArray = @[ @"user_about_me",@"email", @"user_friends"];
//My fb request for friends after verifying that user is logging in the first time
[FBRequestConnection startForMyFriendsWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error) {
NSArray *friendObjects = [result objectForKey:@"data"];
//fbFriendIds is a Mutable array i have declared
fbFriendIds = [NSMutableArray arrayWithCapacity:friendObjects.count];
// Create a list of friends' Facebook IDs
for (NSDictionary *friendObject in friendObjects) {
[fbFriendIds addObject:[friendObject objectForKey:@"id"]];
}
}
}];
通过这样做,我没有在列表中收到任何朋友。所以我尝试了这个:
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
friends = [result objectForKey:@"data"];
NSLog(@"Found: %i friends", friends.count);
for (NSDictionary<FBGraphUser>* friend in friends) {
NSLog(@"I have a friend named %@ with id %@", friend.name, friend.id);
}
}];
但我仍然没有得到朋友。稍后在函数中我将数组保存为PFUser
,如此
user[@"fbFriendsList"] = friends;
[user saveInBackground];
但这会返回Found: 0
。为什么这些方法没有检索朋友列表?我该怎么做并将其保存到我的解析后端?
答案 0 :(得分:3)
自2014年4月起,您只会获得授权您的应用的用户,请查看更改日志:https://developers.facebook.com/docs/apps/changelog
未授权您的应用的用户无法知道您是否存储了他们的数据,因此,如果您考虑隐私,这是有意义的。
现在吸引所有朋友的唯一方法是使用invitable_friends邀请用户访问您的应用,taggable_friends用于标记用户。但在你的情况下,没有办法得到所有这些。