解析Facebook登录无法在Ionic View中运行

Pab*_*las 8 javascript facebook ionic

我正在尝试使用Parse.FacebookUtils.logIn来处理Ionic视图,当我在浏览器中点击ionic服务时,我已成功地使其工作,但问题是当我尝试使用Ionic View模拟器登录时,基本上认证Facebook窗口没有弹出,我不明白为什么.

我遵循了这个文档:https: //www.parse.com/docs/js/guide#users-facebook-users

一切都在浏览器中运行良好,只是试图让它在Ionic视图中工作.

有任何想法吗 ?

Pab*_*las 4

我放弃了带有 Ionic 的 Parse sdk 并开始使用另一个插件,使用下面的文档:

\n\n

http://ngcordova.com/docs/plugins/oauth/

\n\n

https://github.com/nraboy/ng-cordova-facebook-example/blob/master/www/js/app.js

\n\n

这是我为使其与 Parse 一起使用而编写的代码:

\n\n
$scope.fbLogin = function() {\n            var result;\n            $cordovaOauth.facebook(\'987971754588010\', [\'public_profile, user_birthday, email\']).then(function(success) {\n\n                $http.get("https://graph.facebook.com/v2.2/me", { params: { access_token: success.access_token, fields: "id,name,birthday,last_name,first_name,email,gender,picture.type(large)", format: "json" }}).then(function(result) {\n\n                    $localstorage.setObject(\'fbData\', result.data);\n\n                    var expiration_date = new Date();\n                    expiration_date.setSeconds(expiration_date.getSeconds() + success.expires_in);\n                    expiration_date = expiration_date.toISOString();\n\n                    var facebookAuthData = {\n                        "id": result.data.id,\n                        "access_token": success.access_token,\n                        "expiration_date": expiration_date\n                    };\n\n                    Parse.FacebookUtils.logIn(facebookAuthData, {\n                        success: function(user) {\n                            if (!user.existed()) {\n                                alert("User signed up and logged in through Facebook!");\n                                $scope.openModal();\n                            } else {\n                                alert("User logged in through Facebook!");\n                                $scope.syncFbData(null);\n                            }\n                        },\n                        error: function(user, error) {\n                            console.log(\'ERROR: \' + error);\n                            var alertPopup = $ionicPopup.alert({\n                                title: \'Error de autenticaci\xc3\xb3n de usuario\',\n                                template: \'El usuario cancel\xc3\xb3 autenticaci\xc3\xb3n con Facebook o no autoriz\xc3\xb3 permisos. \'\n                            });\n                        }\n                    });\n                }, function(error) {\n                    console.log(\'ERROR: \' + error);\n                    var alertPopup = $ionicPopup.alert({\n                        title: \'Error de conexi\xc3\xb3n\',\n                        template: \'No se ha logrado establecer conexi\xc3\xb3n con Facebook.\'\n                    });\n                });\n            }, function(error) {\n                console.log(\'ERROR: \' + error);\n                var alertPopup = $ionicPopup.alert({\n                    title: \'Error de conexi\xc3\xb3n\',\n                    template: \'No se ha logrado establecer conexi\xc3\xb3n con Facebook.\'\n                });\n            });\n        };\n\n        $scope.syncFbData = function (newUsername) {\n            var fbData = $localstorage.getObject(\'fbData\')\n            var currentUser = Parse.User.current();\n            if (newUsername) {\n                currentUser.set(\'username\', newUsername);\n            }\n            currentUser.set(\'nombre\', fbData.first_name);\n            currentUser.set(\'apellidos\', fbData.last_name);\n            currentUser.set(\'email\',fbData.email);\n            currentUser.set(\'fechaNacimiento\', new Date(fbData.birthday));\n            currentUser.set(\'imagenUrl\',fbData.picture.data.url);\n            currentUser.set(\'genero\',((fbData.gender === \'male\') ? \'Hombre\' : \'Mujer\') );\n            currentUser.save(null, {\n                success: function (response) {\n                    $scope.closeModal();\n                    $state.go(\'app.lista-cervezas\');\n                },\n                error: function (response, error) {\n                    console.log(\'ERROR: \' + error);\n                    var alertPopup = $ionicPopup.alert({\n                        title: \'Nombre de usuario invalido\',\n                        template: \'El nombre de usuario ingresado ya se encuentra en uso!\'\n                    });\n                }\n            });\n        };\n
Run Code Online (Sandbox Code Playgroud)\n