3

このコードを使用して 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)"
    }

なぜこれが起こっているのですか?

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 に答える