Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:对象不存在';在fb登录的angular js代码中不支持属性或方法_Javascript_Angularjs_Facebook_Fbloginview - Fatal编程技术网

Javascript 错误:对象不存在';在fb登录的angular js代码中不支持属性或方法

Javascript 错误:对象不存在';在fb登录的angular js代码中不支持属性或方法,javascript,angularjs,facebook,fbloginview,Javascript,Angularjs,Facebook,Fbloginview,我正在尝试为我的网站整合facebook登录。我得到一个弹出窗口,甚至我得到一些数据,如我的id和用户名。我在这里面临的问题是,当我尝试重定向页面或将此数据发送到控制器中的handleUser对象时,它不允许我从fbLOgin()函数块调用任何函数。 它不允许我从dat块调用任何函数。。。请帮我做这个 FBLogin(){ console.log("came into fb "); FB.init({ appId : 'my_id', autoLogAppEven

我正在尝试为我的网站整合facebook登录。我得到一个弹出窗口,甚至我得到一些数据,如我的id和用户名。我在这里面临的问题是,当我尝试重定向页面或将此数据发送到控制器中的handleUser对象时,它不允许我从fbLOgin()函数块调用任何函数。 它不允许我从dat块调用任何函数。。。请帮我做这个

FBLogin(){

console.log("came into fb ");
FB.init({
  appId            : 'my_id',
  autoLogAppEvents : true,
  xfbml            : true,
  version          : 'v2.9'
    // js.src = "//connect.facebook.net/en_US/sdk.js";
});



FB.login(function(response) {
      if (response.authResponse) {
       console.log('Welcome!  Fetching your information.... ');
       FB.api('/me', function(response) {
//         console.log('Good to see you, ' + response.name + '.');
         console.log(response.name);
     let user = {
       "userAccountId":response.name,
       "userRole": "CUSTOMER",
       "lastOtpRequest": 0,
       "fullName": "myname",
       "mobileNo": "1234567890",
       "emailId": "mymail@gmail.com",
       "like": false,
       "token": 0,
       "loyal": false,
       "guest": false,
       "enabled": true,
       "newCustomer": true
     }

   });
  } else {
   console.log('User cancelled login or did not fully authorize.');
  }
}));
}

事实上,我的gmail帐户也有同样的问题。所以我在这里发现的是,我们不能从这个承诺中调用当前对象。所以我根据这个承诺创建了另一个函数,我调用这个函数。代码如下

googleLogin() {
    var google = window.gapi;
    var currentObject = this;
    function authenticateUser(data) {
        var user = {};
        user.emailId = data.getEmail();
        user.fullName = data.getName();
        user.socialId = data.getId();
        user.username = data.getGivenName();
        currentObject.handleUser(user);
    }

    google.load('auth2', function () {
        google.auth2.init({
            client_id: ''
        }).then(function (auth2) {
            if (auth2.isSignedIn.get()) {
                var googleUser = auth2.currentUser.get();
                authenticateUser(googleUser.getBasicProfile());
            } else {
                auth2.signIn();
                auth2.isSignedIn.listen(onSignIn);
                function onSignIn(googleUser) {
                    console.log(googleUser);
                    if (googleUser) {
                        var googleUser = auth2.currentUser.get();
                        authenticateUser(googleUser.getBasicProfile());
                    }
                }
            }
        });
    });
}