Facebook插件在安装Facebook应用程序后无效

时间:2016-10-17 13:34:31

标签: android facebook cordova hybrid-mobile-app

场景:使用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)

Log here

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,它显示了相同的问题。

建议一些清单。

谢谢。

2 个答案:

答案 0 :(得分:1)

我也遇到了与Ionic cordova插件(cordova-plugin-facebook4)相同的问题。

答案 1 :(得分:0)

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

来解决问题

jeduan/cordova-plugin-facebook4是Apache Cordova中official plugin for Facebook 的一个分支,用于实现最新的Facebook SDK。除非另有说明,否则这是替代品。您无需更换客户端代码。