Javascript 错误:对象不存在';在fb登录的angular js代码中不支持属性或方法
我正在尝试为我的网站整合facebook登录。我得到一个弹出窗口,甚至我得到一些数据,如我的id和用户名。我在这里面临的问题是,当我尝试重定向页面或将此数据发送到控制器中的handleUser对象时,它不允许我从fbLOgin()函数块调用任何函数。 它不允许我从dat块调用任何函数。。。请帮我做这个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
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());
}
}
}
});
});
}