0

Facebook タイムラインにステータスを公開する必要があります。私のコードは2つのリクエストで構成されています。1 つ目は電子メールのアクセス許可を確認するため、2 つ目は公開のアクセス許可を確認するためです。パーミッション「メール」リクエストで成功した応答を受け取りますが、2 番目のケースでは「発行パーミッション エラー: 操作を完了できませんでした。(com.apple.accounts エラー 8.)」というエラーが表示されます。どこでエラーが発生する可能性がありますか?手伝ってくれてありがとう。

- (void)facebookStatus:(NSString *)identifier {
ACAccountStore *accountStore = [[ACAccountStore alloc]init];

ACAccountType *FBaccountType= [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];

NSString *key = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"FacebookAppID"];
NSDictionary *options = @{
                          ACFacebookAppIdKey : key,
                          ACFacebookPermissionsKey : @[@"email"]
                          };

[accountStore requestAccessToAccountsWithType:FBaccountType options:options completion:^(BOOL granted, NSError *error) {
     if (granted) {
         NSArray *accounts = [accountStore accountsWithAccountType:FBaccountType];

         if ([accounts count] > 0) {
             ACAccountStore *accountStore = [[ACAccountStore alloc]init];
             ACAccountType *FBaccountType= [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
             NSString *key = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"FacebookAppID"];
             NSDictionary *options = @{
                                       ACFacebookAppIdKey : key,
                                       ACFacebookPermissionsKey : @[@"publish_stream"]
                                       };

             [accountStore requestAccessToAccountsWithType:FBaccountType options:options completion:^(BOOL granted2, NSError *error) {
                  if (granted2) {
                      NSLog(@"Publish")
                      ;                          
                  }
                  else {
                      NSLog(@"Publish permission error: %@", [error localizedDescription]);
                      //_publishPermissionsGranted = NO;
                  }

              }];
         }
     }
     else NSLog(@"Nope");

    if (error) {
        if (error.code == 6) {
            NSLog(@"FB Account doesn't exist");
        }
        NSLog(@"Error: %@", error.localizedDescription);
    }
 }];
}
4

1 に答える 1

2

わかりました!オプション ディクショナリは次のようになります。

NSDictionary *options = @{
                                       ACFacebookAppIdKey : key,
                                       ACFacebookPermissionsKey : @[@"publish_stream", @"publish_actions"],
                                       ACFacebookAudienceKey: ACFacebookAudienceEveryone
                                       };

これの代わりに:

NSDictionary *options = @{
                                   ACFacebookAppIdKey : key,
                                   ACFacebookPermissionsKey : @[@"publish_stream"]
                                   };
于 2013-09-13T09:20:37.393 に答える