FBFriendPickerViewController朋友列表为空

时间:2014-10-09 19:42:13

标签: ios objective-c facebook cocos2d-iphone facebook-ios-sdk

我正在尝试使用FBFriendPickerViewController获取Facebook好友列表来发送应用邀请。每当我测试代码时,朋友列表都是空的。请参阅以下代码:

@implementation FacebookInviteViewController

- (void)showFriendPicker
{

    FBFriendPickerViewController *friendPicker = [[FBFriendPickerViewController alloc] init];
    friendPicker.title = @"Invite Friends";
    friendPicker.delegate = self;    

    [friendPicker loadData];

    AppController *appController = (AppController *)[[UIApplication sharedApplication] delegate];
    [appController.navController presentViewController:friendPicker animated:YES completion:nil];

}

-(void)inviteFromFacebookSelected
{
    if (!FBSession.activeSession.isOpen) {
        [FBSession openActiveSessionWithReadPermissions:nil
                                       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) {
                                          [self showFriendPicker];
                                      }
                                  }];

    } else {
        [self showFriendPicker];
    }
}

在Settings类(来自CCLayer的子类)中,当按下facebook按钮时,我调用以下方法

-(void)showFbConnect    {
facebookInviteViewController = [[FacebookInviteViewController alloc] init];
[facebookInviteViewController inviteFromFacebookSelected];
}

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

图形API版本2.0及更高版本只会使用好友返回应用程序。这意味着您只会获得已授权您的应用的朋友列表。因此,如果您在Facebook上创建了一个新应用,并且如果您朋友列表中的任何朋友都没有授权您的应用,则FBFriendPickerViewController将为空。

查看官方facebook docs

的更改日志
  

App好友:/ me / friends端点不再包含完整列表   一个人的朋友。相反,它现在返回该列表   也正在使用你的应用程序的人的朋友。

如果您想测试,可以从您的某个朋友帐户授权您的应用,而该朋友将显示在FBFriendPickerViewController

答案 1 :(得分:2)

@ Bhumit回答的小补充。您可以转到Facebook上的应用页面,并在角色部分添加测试用户。 Facebook只需点击一下按钮即可为您创建测试用户。然后,您可以管理这些用户及其朋友。 这应该有助于测试。