【发布时间】:2014-08-06 23:11:09
【问题描述】:
我一直在我的 iPhone 应用程序中使用 Facebook SDK,使用放置在 Interface Builder XIB 文件中并在视图控制器 .m 文件的委托方法中初始化的 FBLoginView 登录用户,如下所示:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.loginView = [self.loginView initWithReadPermissions: @[@"public_profile", @"user_friends"]];
self.loginView.delegate = self;
}
return self;
}
我尝试在用户这样登录后获取好友列表:
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
NSArray* friends = [result objectForKey:@"data"];
}
我有两个 Facebook 帐户正在使用我的应用程序,因此一个应该能够在此请求中检索另一个。直到今天,当我尝试更改应用程序名称时,它工作正常并检索了朋友。现在,friends 最终成为一个空数组。我尝试删除然后重新授权两个帐户上的应用程序。我已确保两个帐户都是 Facebook 上的朋友。就在我准备将完成的应用提交给 App Store 审核时,我陷入了困境,别无选择!
我在 Facebook 上的 App ID 和我在 app-Info.plist 中的 FaceBookAppID 是相同的,并且从未更改过。之前和现在之间的唯一区别:我在developers.facebook.com 上更改了我的应用程序包ID,使其与我的PLIST 中的包标识符相同。我的 PLIST 中的显示名称和我的 FacebookDisplayName 都已更改并且现在相同。
【问题讨论】:
-
您是否向两个用户请求了朋友的权限并都授予了权限?
-
@WizKid initWithReadPermissions 应该通过将 @"user_friends" 传递到权限数组来执行此操作。我通过两个帐户上的应用程序登录了 Facebook。奇怪的是,登录页面只说该应用程序正在使用公共配置文件,但我认为它总是这样做。如果出现错误,它不应该为朋友 NSArray 返回一个空数组,而是返回 nil,对吗?我会尝试设置断点并检查 NSError 以防万一(明天)。
-
@9000
error是nil。
标签: ios facebook facebook-graph-api