【问题标题】:Can not access Facebook session - UnknownError: Invalid application无法访问 Facebook 会话 - UnknownError: Invalid application
【发布时间】:2013-09-04 11:22:51
【问题描述】:

我正在使用带有 Facebook SDK 3.5 的 Unity3D 的 Prime31 SocialNetworking 插件,并尝试在 Android 2.3.5 设备上登录 Facebook。 Facebook 应用程序安装在我的设备上,并且 Facebook 用户在应用程序启动之前登录。使用默认登录行为SSO_WITH_FALLBACK

当我从我的应用程序启动登录时,我观察到以下行为:

  1. 当应用程序启动时,Facebook 会话处于CREATED 状态。
  2. 权限对话框提示我允许对我的应用程序进行基本读取访问。
  3. 我单击“确定”,然后显示我的主要应用程序活动,而不是 Facebook 的登录对话框(可能是故意的,但 Session.getActiveSession().closeAndClearTokenInformation()Session.setActiveSession(null) 在 Prime31 插件内的 new Session.OpenRequest(FacebookPlugin.getActivity()) 之前被调用)。
  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 应用程序设置中检查了我的应用程序 ID 和哈希键:两者都与我的应用程序设置匹配。 Prime31 插件记录的哈希键与在我的 Windows 环境中创建的相同。当我将应用 ID 更改为不同的东西时,我得到了另一个错误 - “无效的应用 ID”。所以 app id 似乎设置正确。我还可能错过什么?

【问题讨论】:

    标签: android facebook unity3d prime31


    【解决方案1】:

    对于所有遇到类似问题的人,请在启动您的应用程序时检查您的 Facebook 应用程序沙盒模式和当前活跃的 Facebook 用户。就我而言,我正在启动处于沙盒模式的应用程序,并且当前 Facebook 用户不在 Facebook 应用程序设置中的授权用户列表中

    【讨论】:

      【解决方案2】:

      以防万一,我遇到了同样的问题,这是因为我的测试手机的时间设置在未来 3-4 个月。

      【讨论】:

        【解决方案3】:

        当 facebook 应用程序使用以前未在 facebook 注册的 ID 标识自己时,可能会发生这种情况。转到 https://developers.facebook.com ,注册一个新应用程序,您将收到一个数字 ID(大约 10 位数字),您应该将其植入代码中。在 react-native-fbsdk 中,这称为 facebook_app_idfacebook_application_id

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-21
          • 2014-06-25
          • 2011-12-02
          • 2017-10-22
          • 1970-01-01
          相关资源
          最近更新 更多