web-dev-qa-db-ja.com

iOSのcom.facebook.sdkエラー2

IOSとAndroidの両方で実行されるPhonegapアプリがあります。このアプリには数日前まで機能していたFacebookログイン機能があります。ベータテスターの一部は、「操作を完了できませんでしたcom.facebook.sdkエラー2」エラーを報告しています。これらのテスターのデバイスは異なります:iPhone 5、iPhone 4s、iPod Touch、iOS 5.1.1、iOS 6.0。

最新のFacebook SDKとPhonegap Facebookログインプラグインを使用します( https://github.com/davejohnson/phonegap-plugin-facebook-connect/ )。

私はいくつかの調査を行ったが、このエラーが発生する可能性がある次の理由を見つけました。

  • Info.plistファイルのBundleIdentifierとBundleURLNameが、Facebookアプリの設定のNative iOSアプリのBundle IDと一致しません。
  • アプリはまだサンドボックスモードです
  • Facebook設定でアプリが無効になっています(デバイスの設定-> Facebook->これらのアプリにアカウントの使用を許可する)。
  • iOS 6.0では、読み取りと書き込みの許可を同時に要求することはできません(この権利があるかどうかはわかりません)。

以下はその場合です。

  • BundleIdentifierとBundleURLNameが一致します。
  • アプリはサンドボックスモードではありません。
  • すべてのユーザーの「これらのアプリにアカウントの使用を許可する」にアプリが表示されない
  • Phonegapプラグインのビルダーは、iOS 6.0の権限のバグを修正したと言われています( https://github.com/davejohnson/phonegap-plugin-facebook-connect/pull/216

これは非常に一貫性のないバグです(私の場合)。 「これらのアプリにアカウントの使用を許可する」でアプリをオフにした場合、自分でエラーを再現することしかできませんが、アプリを再度許可することで簡単にエラーを修正できます。現時点では、ほとんどのテスターに​​はこのバグはありませんが(もう)、エラーはiPodに残ります(「これらのアプリにアカウントの使用を許可する」にもリストされていません)。

なぜこのバグが発生しているのか誰にも分かりますか?

32
saltandpepper

判明:com.facebook.sdkエラー2は多くのことを意味します。何らかの種類のFacebook SDKエラー変換テーブルを探していますが、見つけることができません。私の場合:接続がタイムアウトしたため、com.facebook.sdkエラー2が発生しました。このエラーが発生したユーザーは、ネットワーク/ WiFi接続が不良でした

Facebookにログイン中にエラーが発生するたびにエラーの詳細を記録するエラーログシステムを実装しました。これらのログでは、com.facebook.sdkエラー2が非常に頻繁に発生することがわかりましたが、ユーザーが数秒後に再度ログインしようとするたびに解決されます。

適切なドキュメントを見つけることができなかったためかもしれませんが、これらのSDKエラーのあいまいさについて、私は今でもいらいらしています。許可を求めることに関する多くのドキュメントがあります(com.facebook.sdkエラー2につながる可能性があります)が、明らかにこのエラーはより多くのものによって引き起こされる可能性があります。これがどこかに文書化されているのを見るのもいいでしょう。

17
saltandpepper

これは、私が使用していたアプリで起こりました。 iPhoneの設定に移動して、Facebookを選択し、名前をタップして、[アカウントを削除]をクリックすることで回避できました。

その後、問題なくアプリにサインインできました。

設定に戻りました|フェイスブックと私の資格情報を再提出。

アプリは引き続き正常に動作します。

6
seans23

ネイティブiOSアプリ(Facebook Developersページ)を確認し、バンドルID(Xcodeプロジェクトのバンドル識別子と同じ)を入力するのを忘れたときにこのバグがありました。 (最後にプロジェクト名を含みます。)Facebook開発者ページにもサンドボックスモードを有効にする設定がありました。この作業を行うには、サンドボックスモードも無効にしました。

5
coolcool1994

私は古いiOS 5.0を使ってより大きなデバイスをカバーする限り、このエラーの原因を長い間考えていました。 Facebookリクエストデバッグでエラー400を受け取りました。最後に、理由が不明であることがわかりましたFBSessionDefaultAudience for FBSession(6.0+でテストし、ネイティブFacebookのAPIがエラーの理由を示しました)。そして私が使用したとき

+ (BOOL)openActiveSessionWithPublishPermissions:(NSArray*)publishPermissions
                                defaultAudience:(FBSessionDefaultAudience)defaultAudience
                                   allowLoginUI:(BOOL)allowLoginUI
                              completionHandler:(FBSessionStateHandler)handler;

このエラーは最終的に消えました。

4
kokoko

最初に試す:

Go to Settings app -> Facebook -> Your App -> Switch it off and back on again.

これでうまくいきました。実際にfbアカウントを削除して、@ seans23が示唆するようにログインし直す必要はありませんでした。それが機能していなかった場合、私は次にそれを試してみましたが、これは明らかに状態をリセットするトリックをしました。

1
Kyle Clegg

私の理由は、シミュレータでアプリをテストしていたからです。写真を共有したかったのですが、ダイアログが表示されなかったため、iPhoneに接続すると、すべてがスムーズに進みました!

1
kalafun

このアプローチは私のために働いた。 (iOS 8)

コンテキスト:

  • FB「ログイン」ボタンがFBアプリもSafariのFBも開かない
  • FB SDKエラーをポップしました。 2。
  • 「My App」は、使用可能にするためにFB設定に表示されませんでした。

ソリューション:

  • Safari Webキャッシュをクリアします(オプションの場合があります)
  • Facebookアプリを削除する
  • Facebook Messengerを削除します
  • アプリをインストールしてログインする

アイデアはboth Facebookアプリとメッセンジャーを削除することです。

1
Teodor Ciuraru

同じ問題がありました。結局のところ、理由はFB側のタイムアウトにあります。特に、「FBログイン」ページがまだオンになっているときにこのタイムアウトが発生し、ユーザーが「キャンセル」をクリックした場合は特にそうです。その場合、エラー2は常に再調整されます。したがって、この状況を繰り返してテストする場合は、FBに接続しているときに[キャンセル]ボタンをクリックするだけです。

0
Milos Djikic

私の場合、会社のアカウントでアプリを作成し、開発者ロールで個人プロフィールを追加するのを忘れました。私がそれを理解した後、すべてがスムーズに行きました。

乾杯。

0
Felipe