requestAccessToAccountsWithType返回NSError“(NULL)”

时间:2013-05-17 03:39:39

标签: ios facebook ios6 nserror

我正在使用此代码连接到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)"
    }

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

我遇到了这个问题,在我的案例中偶然发现了答案。 this other question的答案实际上帮助我找到了答案。

  1. 我在developer.facebook.com(设置 - >高级版)中启用了我的Facebook应用程序作为本机应用程序。

  2. 我的第一个请求只是@“电子邮件”。

    NSDictionary *options = @{
                              ACFacebookAppIdKey: @“MY_FB_APP_ID",
                              ACFacebookPermissionsKey: @[@"email"],
                              };
    
  3. 似乎"填充泵“并且后续的其他权限请求(读取和写入必须单独请求)运行良好。例如:

    NSDictionary *options = @{
                              ACFacebookAppIdKey: @“MY_FB_APP_ID",
                              ACFacebookPermissionsKey: @[@"email",
                                                          @"user_friends"],
                              };