我正在使用此代码连接到Facebook。它第一次工作。然后我进入我的设置应用程序并撤消权限。然后我回到我的应用程序并再次运行此代码。 granted
会返回NO
,但error
不包含任何数据,我预计会出现错误code 6
,但我会收到"(null)"
if (!_accountStore) _accountStore = [[ACAccountStore alloc] init];
ACAccountType *fbActType = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
// Permissions
NSArray *permissions = [NSArray arrayWithObject:@"email"];
NSMutableDictionary *options = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"##########", ACFacebookAppIdKey,
permissions, ACFacebookPermissionsKey,
nil];
// requestAccessToAccountsWithType
[_accountStore requestAccessToAccountsWithType:fbActType options:options completion:^(BOOL granted, NSError *error) {
if (granted) {
// do something if we have access
} else {
NSLog(@"%@",error); // this returns "(null)"
}
为什么会发生这种情况?
答案 0 :(得分:0)
我遇到了这个问题,在我的案例中偶然发现了答案。 this other question的答案实际上帮助我找到了答案。
我在developer.facebook.com(设置 - >高级版)中启用了我的Facebook应用程序作为本机应用程序。
我的第一个请求只是@“电子邮件”。
NSDictionary *options = @{
ACFacebookAppIdKey: @“MY_FB_APP_ID",
ACFacebookPermissionsKey: @[@"email"],
};
似乎"填充泵“并且后续的其他权限请求(读取和写入必须单独请求)运行良好。例如:
NSDictionary *options = @{
ACFacebookAppIdKey: @“MY_FB_APP_ID",
ACFacebookPermissionsKey: @[@"email",
@"user_friends"],
};