ios - 更改应用名称后,Facebook user_friends 权限不再返回使用该应用的 friend

标签 ios facebook facebook-graph-api

我一直在我的 iPhone 应用程序中使用 Facebook SDK,使用放置在 Interface Builder XIB 文件中的 FBLoginView 登录用户,并在 View Controller .m 文件的委托(delegate)方法中初始化,如下所示:

- (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 帐户使用我的应用程序,因此一个应该能够在此请求中检索另一个。直到今天我尝试更改应用程序名称时,它都运行良好并检索了 friend 。现在,friends 最终变成了一个空数组。我尝试删除然后重新授权两个帐户上的应用程序。我已确保这两个帐户都是 Facebook 上的好友。就在我正要将完成的应用程序提交给 App Store 审核时,我陷入了困境,别无选择!

我在 Facebook 上的 App ID 和我在 app-Info.plist 中的 FaceBookAppID 是相同的,从未改变过。之前和现在之间的唯一区别:我在 developers.facebook.com 上更改了我的应用程序的 bundle ID,使其与我的 PLIST 中的 Bundle Identifier 相同。我的 PLIST 中的显示名称和 FacebookDisplayName 都已更改,现在相同。

最佳答案

我找到了答案。我找错地方了;该问题与 Facebook 上的名称更改无关。正如我发现的那样,我的问题中的这段代码是在 XIB 已经在 loginView 上调用了 init 之后被调用的,默认情况下它只给它 public profile。之后调用 initWithReadPermissions 并没有添加任何权限;事实上,这个调用似乎被忽略了:

更新:实际上,回顾这一点,我认为问题在于我在我的 FBLoginView 上调用了 initWithReadPermissions,甚至在它被分配之前。我的新手错误。

self.loginView = [self.loginView initWithReadPermissions: @[@"public_profile", @"user_friends"]]; // loginView is an FBLoginView 

但是如果我把它放在 viewDidLoad 中并删除其他代码,这会起作用:

self.loginView.readPermissions = @[@"user_friends"];

我一定是在名称更改后才注意到这个问题的,因为我从我的帐户中删除了应用程序并重新添加了它,删除了在我为此 View Controller 使用 XIB 之前授予的旧 user_friends 权限。然后我将其归咎于名称更改,并在 Facebook 开发站点上无果而终地进行了搜索。

关于ios - 更改应用名称后,Facebook user_friends 权限不再返回使用该应用的 friend ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25171783/

相关文章:

php - 错误 : Class 'Facebook\FacebookSession' not found with the facebook PHP SDK

android - 获取好友列表 facebook 3.0

php - Facebook API 使用 insights php sdk

ios - UITextField 对齐 : Placeholder right aligned & Actual text gets left aligned

ios - 在 ios 中导入联系人组

ios - 使用 Core Data、iCloud 和 CloudKit 进行同步和备份以及它们如何协同工作

objective-c - 包含 .h 文件时出现重复符号

ios - UIActivityViewController 为 Twitter 和 Facebook 发布不同的图像和文本

facebook - 您能否获取开放图对象实例(例如 "Blowing in the Wind"与歌曲)的 Facebook Insights?

Facebook Graph API 评论不返回