3

我正在使用此代码连接到 Facebook。它第一次起作用。然后我进入我的设置应用程序并撤销权限。然后我回到我的应用程序并再次运行此代码。 granted返回NOerror不包含任何数据,我期待错误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)"
    }

任何想法为什么会发生这种情况?

4

1 回答 1

0

我遇到了这个问题,只是偶然发现了我的答案。这个其他问题的答案实际上帮助我找到了它。

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

  2. 我的第一个请求是阅读@“email”。

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

这似乎“启动了泵”,随后对其他权限的请求(必须单独请求读取和写入)运行良好。例如:

NSDictionary *options = @{
                          ACFacebookAppIdKey: @“MY_FB_APP_ID",
                          ACFacebookPermissionsKey: @[@"email",
                                                      @"user_friends"],
                          };
于 2014-05-16T21:58:32.963 回答