【问题标题】:Facebook plugin not works after installing facebook application安装 Facebook 应用程序后 Facebook 插件不起作用
【发布时间】:2016-10-17 13:34:30
【问题描述】:

场景:使用 facebook cordova 插件登录。

在安装之前 facebook 应用程序可以正常工作。

安装 facebook 应用程序后,它会抛出“会话已关闭且未正常关闭

代码:

 facebookConnectPlugin.login(["email", "public_profile","user_friends" ],
            function(response) {
                var accessToken = response.authResponse.accessToken;
                var fbName = "";
                var fbID = "";
                var fbProfilePicUrl = "";
            if (response.authResponse) {
                facebookConnectPlugin.api('/me',null,
                function(response) {
                /*store succes details in variables*/
                fbID = response.id;
                fbName = response.name;
                /*Get facebook picture url*/
                facebookConnectPlugin.api('me/picture?redirect=false&type=large',null,
                function(response) {
                    var data = response.data;
                    fbProfilePicUrl = data.url;
                    /*call fb sign up method here*/
                },
                function(error) {});
                });
            }
            else{/*do for authenticate fb login error*/}
            });

回复 {"status":"unknown"}

As per documentation

FB.getLoginStatus() allows you to determine if a user is logged in to Facebook and has authenticated your app. There are three possible states for a user:

the user is logged into Facebook and has authenticated your application (connected)
the user is logged into Facebook but has not authenticated your application (not_authorized)
the user is either not logged into Facebook or explicitly logged out of your application so it doesn't attempt to connect to Facebook and thus, we don't know if they've authenticated your application or not (unknown)

10-19 18:08:45.601 19479-19479/package I/chromium: [INFO:CONSOLE(26)] "No Content-Security-Policy meta tag found. Please add one when using the cordova-plugin-whitelist plugin.", source: file:///android_asset/www/plugins/cordova-plugin-whitelist/whitelist.js (26)
10-19 18:08:45.651 19479-19479/package D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
10-19 18:08:45.721 19479-20018/package D/ConnectPlugin: login FB
10-19 18:08:45.726 19479-19479/package D/ConnectPlugin: onSessionStateChange:OPENING
10-19 18:08:45.736 19479-20018/package I/Timeline: Timeline: Activity_launch_request id:package time:28785549
10-19 18:08:45.756 19479-20018/package W/PluginManager: THREAD WARNING: exec() call to FacebookConnectPlugin.login blocked the main thread for 35ms. Plugin should use CordovaInterface.getThreadPool().
10-19 18:08:45.776 19479-19479/package D/PhoneWindow: *FMB* installDecor mIsFloating : false
10-19 18:08:45.776 19479-19479/package D/PhoneWindow: *FMB* installDecor flags : 8454400
10-19 18:08:46.016 19479-19479/package D/ViewRootImpl: Buffer Count from app info with  ::-1 && -1 for :: package from View :: -1 DBQ Enabled ::false false
10-19 18:08:46.031 19479-19479/package D/PhoneWindow: *FMB* isFloatingMenuEnabled mFloatingMenuBtn : null
10-19 18:08:46.031 19479-19479/package D/PhoneWindow: *FMB* isFloatingMenuEnabled return false
10-19 18:08:46.071 19479-19856/package D/mali_winsys: new_window_surface returns 0x3000,  [540x960]-format:1
10-19 18:08:46.086 19479-19479/package I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@aceb5fe time:28785898
10-19 18:08:46.106 19479-19479/package V/ActivityThread: updateVisibility : ActivityRecord{1a4f5fca token=android.os.BinderProxy@26b1fe99 {package/package.MainActivity}} show : true
10-19 18:08:46.881 19479-19479/package I/Timeline: Timeline: Activity_launch_request id:com.facebook.katana time:28786693
10-19 18:08:46.921 19479-19479/package V/ActivityThread: updateVisibility : ActivityRecord{1a4f5fca token=android.os.BinderProxy@26b1fe99 {package/package.MainActivity}} show : false
10-19 18:08:47.451 19479-19479/package V/ActivityThread: updateVisibility : ActivityRecord{25c340a token=android.os.BinderProxy@aceb5fe {package/com.facebook.LoginActivity}} show : false
10-19 18:08:49.241 19479-19479/package V/ActivityThread: updateVisibility : ActivityRecord{1a4f5fca token=android.os.BinderProxy@26b1fe99 {package/package.MainActivity}} show : true
10-19 18:08:49.261 19479-19856/package D/mali_winsys: new_window_surface returns 0x3000,  [540x960]-format:1
10-19 18:08:49.291 19479-19479/package D/CordovaInterfaceImpl: Sending activity result to plugin
10-19 18:08:49.291 19479-19479/package D/ConnectPlugin: activity result in plugin: requestCode(64206), resultCode(-1)
10-19 18:08:49.306 19479-19479/package D/ConnectPlugin: onSessionStateChange:CLOSED_LOGIN_FAILED
10-19 18:08:49.306 19479-19479/package E/ConnectPlugin: com.facebook.FacebookAuthorizationException: Session was closed and was not closed normally

我检查了调试并签署了 apk,它显示了同样的问题。

建议一些清单。

谢谢。

【问题讨论】:

  • 你能在问题不是图片中发布完整的Log而不是图片吗?
  • @jaydroider:请查看日志
  • 你给logout打电话了吗?否则会话将过期。
  • ok 什么时候退出 ???我正在执行 2 个请求(登录并获取个人资料图片)。
  • Logout do where your app is doing it call it their and remove all local storage items associated with facebook login on it.

标签: android facebook cordova hybrid-mobile-app


【解决方案1】:

Ionic cordova 插件(cordova-plugin-facebook4)也遇到同样的问题。

【讨论】:

    【解决方案2】:

    通过将插件 Wizcorp/phonegap-facebook-plugin 替换为 jeduan/cordova-plugin-facebook4 来工作

    jeduan/cordova-plugin-facebook4 是 Apache Cordova 中 official plugin for Facebook 的一个分支,它实现了最新的 Facebook SDK。除非另有说明,否则这是一个直接替换。您不必替换您的客户端代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 2021-01-14
      相关资源
      最近更新 更多