我正在尝试使用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];
}
我该如何解决这个问题?
答案 0 :(得分:4)
图形API版本2.0及更高版本只会使用好友返回应用程序。这意味着您只会获得已授权您的应用的朋友列表。因此,如果您在Facebook上创建了一个新应用,并且如果您朋友列表中的任何朋友都没有授权您的应用,则FBFriendPickerViewController
将为空。
查看官方facebook docs
的更改日志App好友:/ me / friends端点不再包含完整列表 一个人的朋友。相反,它现在返回该列表 也正在使用你的应用程序的人的朋友。
如果您想测试,可以从您的某个朋友帐户授权您的应用,而该朋友将显示在FBFriendPickerViewController
答案 1 :(得分:2)
@ Bhumit回答的小补充。您可以转到Facebook上的应用页面,并在角色部分添加测试用户。 Facebook只需点击一下按钮即可为您创建测试用户。然后,您可以管理这些用户及其朋友。 这应该有助于测试。