Facebookと統合するAndroidアプリを開発しています。LoginButton.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO) を設定すると、アプリは完全に正常に動作します。
SSO を使用しようとすると、問題が発生します。以下のエラーが表示されます。間違ったキーハッシュを使用すると、同様のエラーが発生しました。Webview ログインが正常に機能するため、これはもう当てはまりません。さらに驚くべきことは、アプリが FB にインストールされている場合、Android アプリが動作することです。たとえば、私はアプリ マネージャーであるため、デフォルトで facebook プロファイルにインストールされますが、アプリがインストールされていない別の fb アカウントで試しても機能しません。ログインしようとすると、以下のエラーが表示され、基本的なアクセス許可が付与されるというダイアログが表示されますが、実際には基本的なアクセス許可さえ取得できません。
App Center に表示されるようにするために、レビューのためにアプリを送信しました。これを行うと、アプリが SSO を使用していることを確認するチェックボックスがダイアログに表示されます。SSO を使用する前に、Facebook がアプリを承認する必要がありますか (承認されている場合、これは意味がありません)。
これを解決するために何時間も費やしましたが、解決策が見つかりません。助けてください。
08-24 01:39:16.058: W/Bundle(21880): Key com.facebook.platform.protocol.PROTOCOL_VERSION expected String but value was a java.lang.Integer. The default value <null> was returned.
08-24 01:39:16.068: W/Bundle(21880): Attempt to cast generated internal exception:
08-24 01:39:16.068: W/Bundle(21880): java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
08-24 01:39:16.068: W/Bundle(21880): at android.os.Bundle.getString(Bundle.java:1069)
08-24 01:39:16.068: W/Bundle(21880): at android.content.Intent.getStringExtra(Intent.java:4350)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.AuthorizationClient$KatanaLoginDialogAuthHandler.tryAuthorize(AuthorizationClient.java:821)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.AuthorizationClient.tryCurrentHandler(AuthorizationClient.java:272)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.AuthorizationClient.tryNextHandler(AuthorizationClient.java:238)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.AuthorizationClient$GetTokenAuthHandler.getTokenCompleted(AuthorizationClient.java:772)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.AuthorizationClient$GetTokenAuthHandler$1.completed(AuthorizationClient.java:731)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.internal.PlatformServiceClient.callback(PlatformServiceClient.java:144)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.internal.PlatformServiceClient.handleMessage(PlatformServiceClient.java:128)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.internal.PlatformServiceClient$1.handleMessage(PlatformServiceClient.java:54)
08-24 01:39:16.068: W/Bundle(21880): at android.os.Handler.dispatchMessage(Handler.java:99)
08-24 01:39:16.068: W/Bundle(21880): at android.os.Looper.loop(Looper.java:137)
08-24 01:39:16.068: W/Bundle(21880): at android.app.ActivityThread.main(ActivityThread.java:5227)
08-24 01:39:16.068: W/Bundle(21880): at java.lang.reflect.Method.invokeNative(Native Method)
08-24 01:39:16.068: W/Bundle(21880): at java.lang.reflect.Method.invoke(Method.java:511)
08-24 01:39:16.068: W/Bundle(21880): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
08-24 01:39:16.068: W/Bundle(21880): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
08-24 01:39:16.068: W/Bundle(21880): at dalvik.system.NativeStart.main(Native Method)