错误:对象不支持 Angular js 代码中用于 fb 登录的属性或方法

Posted

技术标签:

【中文标题】错误:对象不支持 Angular js 代码中用于 fb 登录的属性或方法【英文标题】:Error: Object doesn't support property or method in angular js code for fb login 【发布时间】:2017-06-28 06:52:34 【问题描述】:

我正在尝试为我的 Angular JS 网站集成 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.');
  

);

【问题讨论】:

【参考方案1】:

实际上我的 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());
                    
                
            
        );
    );

【讨论】:

以上是关于错误:对象不支持 Angular js 代码中用于 fb 登录的属性或方法的主要内容,如果未能解决你的问题,请参考以下文章

Angular.js xhr.open() 抛出“拒绝访问”错误

当我们只有一个要接收的对象时如何在Angular 8中获取数据

js错误提示:对象不支持此属性或方法。

js中使用indexOf()方法是提示(对象不支持此属性或方法)如何解决?

如何从对象数组中删除对象。在淘汰赛JS。错误:对象不支持属性或方法“删除”

如何防止 angular.js $http 对象发送 X-Requested-With 标头?