I'm trying to get the friends' birthday, location, and names by sending the FBRequest and show the results on a table in a different view. But I always receive nil response. I've set the permissions first, and then created a request with the required fields:
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_birthday",@"friends_hometown",
@"friends_birthday",@"friends_location",
nil];
if (!FBSession.activeSession.isOpen) {
[FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:YES
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
if (error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
} else if (session.isOpen) {
NSLog(@"permissions::%@",session.permissions);
NSLog(@"Open");
FTBFriendTableViewController *ftbFriendTableViewController= [[FTBFriendTableViewController alloc] initWithNibName:@"FTBFriendTableViewController" bundle:nil];
FTBAppDelegate *delegate=(FTBAppDelegate*)[[UIApplication sharedApplication] delegate];
if (ftbFriendTableViewController.friendList == nil){
ftbFriendTableViewController.friendList = [[NSMutableArray alloc] init];
}
FBRequest *friendRequest = [FBRequest requestForGraphPath:@"me/friends?fields=name,birthday,location"];
[ friendRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
ftbFriendTableViewController.friendList = [result objectForKey:@"data"];
for (FBGraphObject<FBGraphUser> *friend in test) {
NSLog(@"%@:%@", [friend name],[friend birthday]);
}}];
delegate.window.rootViewController = ftbFriendTableViewController;
}
}];
return;
}
I've also set FacebookAppID, FacebookDisplayName, and URL identifier in the application plist. This is the actual request which is sent:
FBRequest: 0x94c1080, session: 0xa1c5600, graphPath: me/friends?fields=name,birthday,location, HTTPMethod: GET, parameters: { "migration_bundle" = "fbsdk:20130409"; }
Any idea what else can cause no response issue? Thanks!