web-dev-qa-db-ja.com

操作を完了できませんでした。 (com.facebook.sdkエラー2.)ios6

こんにちは、Facebookのログインにios6を使用していますが、このエラーがネイティブポップアップとして表示されます

操作を完了できませんでした。 (com.facebook.sdkエラー2.)

これは使用されるシナリオです。 (simularorでこれを実行しています

私は設定を介してFacebookアプリにログインしましたが、アプリにログインしてみましたが、うまく機能しました。

次に、設定からFacebookからログアウトし、別のユーザーで再度ログインしました。次に、アプリにログインしようとしました。このエラーが発生しています。

コマンドを使用してアプリからログアウトしてみました

[FBSession.activeSession closeAndClearTokenInformation];

しかし、役に立たない。

Facebookアプリのバンドル識別子は、私のiosアプリと同じです。

これはログインに使用したコードです

NSArray *permissions = [[NSArray alloc] initWithObjects:@"email", nil];
    [FBSession openActiveSessionWithReadPermissions:permissions
                                       allowLoginUI:YES
                                  completionHandler:
     ^(FBSession *session,
       FBSessionState state, NSError *error) {
         [self sessionStateChanged:session state:state error:error];
     }];

どんな助けも大歓迎です。

これは私が得ているエラーです

Domain = com.facebook.sdk Code = 2「操作を完了できませんでした。(com.facebook.sdkエラー2)」UserInfo = 0x9535330 {com.facebook.sdk:ErrorLoginFailedReason = com.facebook.sdk:SystemLoginDisallowedWithoutError、 com.facebook.sdk:ErrorSessionKey =、expirationDate:(null)、refreshDate:(null)、attemptedRefreshDate:0001-12-30 00:00:00 + 0000、permissions:(null)>}

[〜#〜] note [〜#〜]別の場所で同じエラーが発生しました。当時、それは私のコードのバグでした

として許可を与える代わりに

NSArray *permissions = [[NSArray alloc] initWithObjects:@"email",@"birthday", nil];

間違ってやっていた

NSArray *permissions = [[NSArray alloc] initWithObjects:@"email,birthday", nil];

[〜#〜] solution [〜#〜]コードを修正した後でも、同じエラーが発生していました。 iOSの設定画面からFacebookからログアウトしてログインする必要があります。一度それをやれば、正しいコードが問題を引き起こすことはありませんでした。この問題は、以前にバグのあるコードを実行したデバイスでのみ発生したことに注意してください。問題の原因を確認してください。この情報が誰かの助けになることを願っています

22
M S

これは私のために働いた:

  • IPhoneの設定アプリに移動します。
  • Facebookの設定を開きます
  • アプリまでスクロールダウンし、アプリでFacebookの操作が許可されていることを確認します。

これはどのデバイスでも発生する可能性があるため、アプリではこのエラーを正しく処理する必要があります。 Facebookでのログインに失敗した理由をユーザーにフィードバックし、デバイスでFacebookの設定を確認するようにユーザーに依頼します。

 - (void)facebookSessionStateChanged:(FBSession *)session state:(FBSessionState)state error:(NSError *)error
{
    switch (state) {
        case FBSessionStateOpen:
            // handle successful login here
        case FBSessionStateClosed:
        case FBSessionStateClosedLoginFailed:
            [FBSession.activeSession closeAndClearTokenInformation];

            if (error) {
                // handle error here, for example by showing an alert to the user
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Could not login with Facebook"
                                                                message:@"Facebook login failed. Please check your Facebook settings on your phone."
                                                               delegate:nil
                                                      cancelButtonTitle:@"OK"
                                                  otherButtonTitles:nil];
                [alert show];
            }
            break;
        default:
            break;
    }
23
Bocaxica

プロジェクトのバンドル識別子を確認し、developer.facebook.comで作成したアプリが同じかどうかを示すバンドル識別子を指定します。

9
Sumit Mundra

このエラーの別の潜在的な原因:Facebookユーザーがアプリの管理者、開発者、またはテスターに​​リストされていないときに、サンドボックスモードでFacebookアプリの許可を取得しようとしています。

8
nephtes

ログイン時にnil許可を渡すことで問題を解決します。

[FBSession openActiveSessionWithReadPermissions:nil
                                       allowLoginUI:YES
                                  completionHandler:
3
Kirit Vaghela

私は同じ問題を抱えていて、問題を理解するために丸一日かかりました。 Facebook SDKによるこのエラーメッセージは非常にあいまいです。 OpenURL:メソッドがMyApplicationで上書きされるため、この問題が発生しました。上書きされたメソッドを削除し、Facebookのログインは正常に機能しました。

0
Sandhya Gade

同様の問題がありました。 iがfbユーザーを設定から切り替えたときにエラーが発生します。 デバイスでFBアカウントを切り替えると、iOS6でFacebook認証が失敗します これで問題が解決しました

0
M S

私にとって問題は無効な許可でした-「user_birthday」ではなく「birthday」を要求していました。エラーメッセージが少なくとも最低限の説明ではないのは残念です。ERRORCODE 2ではなく「permissions invalid」と言うだけで時間を大幅に節約できます。

0
Josh Liptzin