32

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 アプリの設定のネイティブ iOS アプリのバンドル ID と一致しません。
  • アプリはまだサンドボックス モードです
  • アプリは Facebook の設定で無効になっています (デバイスの設定 -> Facebook -> これらのアプリにアカウントの使用を許可)。
  • iOS 6.0 では、読み取りと書き込みの許可を同時に要求することはできません (私にこの権利があるかどうかはわかりません)。

次の場合があります。

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

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

なぜ私がこのバグを抱えているのか、誰にも分かりますか?

4

9 に答える 9

18

結局のところ、com.facebook.sdkエラー2は多くのことに変換される可能性があります。ある種のFacebookSDKエラー変換テーブルを探していますが、見つかりません。私の場合: 接続がタイムアウトしたため、com.facebook.sdkエラー2が発生しました。このエラーが発生したユーザーは、ネットワーク/WiFi接続が不良でした

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

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

于 2013-03-05T11:15:03.483 に答える
6

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

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

設定に戻りました | facebook にアクセスし、資格情報を再送信しました。

アプリはまだ正常に動作します。

于 2013-05-15T19:21:20.513 に答える
5

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

于 2013-06-12T06:09:23.480 に答える
4

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

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

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

于 2013-04-23T16:13:32.673 に答える
1

最初に試してください:

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

これは私にとってはうまくいき、@ seans23が示唆するように、実際にfbアカウントを削除して再度ログインする必要はありませんでした. それがうまくいかなかったら、次にそれを試したでしょうが、これはどうやら状態をリセットするのにうまくいかなかったようです。

于 2014-06-10T07:14:18.280 に答える
0

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

于 2013-07-16T09:27:28.463 に答える