2013-09-04 5 views
3

Я использую плагин Prime31 SocialNetworking для Unity3D с помощью Facebook SDK 3.5 и пытается войти в систему Facebook на устройстве Android 2.3.5. Приложение Facebook установлено на моем устройстве, и пользователь Facebook зарегистрировался до запуска приложения. По умолчанию используется поведение по умолчанию SSO_WITH_FALLBACK.Не удается получить доступ к сеансу Facebook - UnknownError: Неверное приложение

Когда я инициировать вход из моего приложения я наблюдаю следующее поведение:

  1. Когда приложение начинает сеанс Facebook находится в CREATED состоянии.
  2. Диалоговое окно «Разрешения» предлагает мне разрешить основной доступ для чтения для моего приложения.
  3. Я нажимаю OK, а затем моя основная активность приложения отображается вместо диалогового окна входа в Facebook (возможно, это намеренно, но Session.getActiveSession().closeAndClearTokenInformation() и Session.setActiveSession(null) вызываются до new Session.OpenRequest(FacebookPlugin.getActivity()) внутри плагина Prime31).
  4. Мое приложение Facebook не открывается (находится в состоянии CLOSED_LOGIN_FAILED).

LogCat сообщает мне эти строки (имя пакета и Facebook приложение ID заменены):

I/Prime31 (5077): FacebookPlugin: openActiveSession.call with state: CLOSED_LOGIN_FAILED, exception: com.facebook.FacebookException: Log in attempt aborted. 
I/Prime31 (5077): session state: OPENING 
I/ActivityManager(1444): Starting activity: Intent { act=SSO_WITH_FALLBACK cmp=MY_PACKAGE_NAME/com.facebook.LoginActivity (has extras) } from pid 5077 
I/Prime31 (5077): FacebookPlugin: openActiveSession.call with state: OPENING, exception: null 
V/ActivityManager(1444): Checking to restart com.facebook.LoginActivity: changed=0x0, handles=0x0 
V/ActivityManager(1444): oldConfig={ scale=1.0 imsi=250/2 loc=ru_RU touch=3 keys=1/1/2 nav=1/1 orien=1 layout=34 uiMode=17 seq=3 skin=default fontsize=3} 
V/ActivityManager(1444): newConfig={ scale=1.0 imsi=250/2 loc=ru_RU touch=3 keys=1/1/2 nav=1/1 orien=1 layout=34 uiMode=17 seq=3 skin=default fontsize=3} 
V/WindowManager(1444): Finished animation in AppWindowToken{40e61148 token=HistoryRecord{408389c8 MY_PACKAGE_NAME/com.prime31.UnityPlayerNativeActivity}} @ 6621760 
I/ActivityManager(1444): Displayed MY_PACKAGE_NAME/com.facebook.LoginActivity: +547ms 
V/WindowManager(1444): Finished animation in AppWindowToken{40c836a8 token=HistoryRecord{40d3d640 MY_PACKAGE_NAME/com.facebook.LoginActivity}} @ 6621760 
D/NativeCrypto(3576): returned from sslSelect() with result 1, error code 2 
W/fb4a(:<default>):BlueServiceQueue(3576): Exception during service 
W/fb4a(:<default>):BlueServiceQueue(3576): com.facebook.http.protocol.ApiException: Invalid application MY_VALID_APP_ID 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.http.protocol.ApiResponseChecker.b(ApiResponseChecker.java:81) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.http.protocol.ApiResponseChecker.a(ApiResponseChecker.java:110) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.http.protocol.ApiResponse.h(ApiResponse.java:291) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.katana.server.protocol.AuthorizeAppMethod.a(AuthorizeAppMethod.java:272) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.katana.server.protocol.AuthorizeAppMethod.a(AuthorizeAppMethod.java:29) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.http.protocol.SingleMethodRunnerImpl.a(SingleMethodRunnerImpl.java:152) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.http.protocol.AbstractSingleMethodRunner.a(AbstractSingleMethodRunner.java:16) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.katana.server.handler.PlatformOperationHandler.c(PlatformOperationHandler.java:366) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.katana.server.handler.PlatformOperationHandler.a(PlatformOperationHandler.java:259) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.fbservice.service.BlueServiceQueue.d(BlueServiceQueue.java:293) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.fbservice.service.BlueServiceQueue.d(BlueServiceQueue.java:53) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.fbservice.service.BlueServiceQueue$3.run(BlueServiceQueue.java:230) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:444) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at com.facebook.common.executors.HandlerExecutorServiceImpl$ListenableScheduledFuture.run(HandlerExecutorServiceImpl.java:268) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at android.os.Handler.handleCallback(Handler.java:587) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at android.os.Handler.dispatchMessage(Handler.java:92) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at android.os.Looper.loop(Looper.java:150) 
W/fb4a(:<default>):BlueServiceQueue(3576):  at android.os.HandlerThread.run(HandlerThread.java:60) 
W/Bundle (5077): Key com.facebook.platform.protocol.PROTOCOL_VERSION expected String but value was a java.lang.Integer. The default value <null> was returned. 
W/Bundle (5077): Attempt to cast generated internal exception: 
W/Bundle (5077): java.lang.ClassCastException: java.lang.Integer 
W/Bundle (5077):  at android.os.Bundle.getString(Bundle.java:1040) 
W/Bundle (5077):  at android.content.Intent.getStringExtra(Intent.java:3685) 
W/Bundle (5077):  at com.facebook.AuthorizationClient$KatanaLoginDialogAuthHandler.tryAuthorize(AuthorizationClient.java:821) 
W/Bundle (5077):  at com.facebook.AuthorizationClient.tryCurrentHandler(AuthorizationClient.java:272) 
W/Bundle (5077):  at com.facebook.AuthorizationClient.tryNextHandler(AuthorizationClient.java:238) 
W/Bundle (5077):  at com.facebook.AuthorizationClient$GetTokenAuthHandler.getTokenCompleted(AuthorizationClient.java:772) 
W/Bundle (5077):  at com.facebook.AuthorizationClient$GetTokenAuthHandler$1.completed(AuthorizationClient.java:731) 
W/Bundle (5077):  at com.facebook.internal.PlatformServiceClient.callback(PlatformServiceClient.java:144) 
W/Bundle (5077):  at com.facebook.internal.PlatformServiceClient.handleMessage(PlatformServiceClient.java:128) 
W/Bundle (5077):  at com.facebook.internal.PlatformServiceClient$1.handleMessage(PlatformServiceClient.java:54) 
W/Bundle (5077):  at android.os.Handler.dispatchMessage(Handler.java:99) 
W/Bundle (5077):  at android.os.Looper.loop(Looper.java:150) 
W/Bundle (5077):  at android.app.ActivityThread.main(ActivityThread.java:4385) 
W/Bundle (5077):  at java.lang.reflect.Method.invokeNative(Native Method) 
W/Bundle (5077):  at java.lang.reflect.Method.invoke(Method.java:507) 
W/Bundle (5077):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849) 
W/Bundle (5077):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607) 
W/Bundle (5077):  at dalvik.system.NativeStart.main(Native Method) 

Когда я выйти из Facebook в родное приложение поведение немного меняется - появляется экран Логин, но когда показана основная активность приложения, я получаю то же самое состояние сеанса CLOSED_LOGIN_FAILED.

Я проверил свой идентификатор приложения и хэш-ключ в настройках приложения Facebook: оба соответствуют моим настройкам приложения. Ключ хэша, зарегистрированный в плагине Prime31, такой же, как и в моей среде Windows. Когда я изменил идентификатор приложения на что-то другое, я получил еще одну ошибку - «неверный идентификатор приложения». Таким образом, идентификатор приложения, похоже, настроен правильно. Что еще я могу пропустить?

ответ

11

Для всех, кто сталкивается с подобными проблемами, проверьте ваш Facebook в режиме песочницы и в настоящее время активен Facebook при запуске приложения. В моем случае я запускал приложение, которое находилось в режиме песочницы, а текущий Пользователь Facebook не был из предоставленного списка пользователей в настройках приложения Facebook.

0

В случае, если это помогает кому-либо, у меня была такая же проблема, и это было связано с тем, что мой тестовый телефон имел свое время, установленное 3-4 месяца в будущем.

0

Это может произойти, когда приложение facebook идентифицирует себя с идентификатором, ранее не зарегистрированным в facebook. Перейдите на страницу https://developers.facebook.com, зарегистрируйте новое приложение, и вы получите цифровой идентификатор (примерно 10 цифр), который вы должны установить в коде. в response-native-fbsdk, это называется facebook_app_id или facebook_application_id.

Смежные вопросы