如何在谷歌+ api登录后获得用户数据

How to get user data after signin in google plus api?

本文关键字:用户 用户数 数据 登录 谷歌 api      更新时间:2023-09-26

我使用以下代码注册了一个使用google plus的网站。
使用下面的代码,我在系统中成功登录,但如何获得用户数据或gplus id?

<html>
<head>
    <script type="text/javascript">
      (function() {
       var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
       po.src = 'https://apis.google.com/js/client:plusone.js';
       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
     })();
     function signinCallback(authResult) {
        if (authResult['status']['signed_in']) {
            console.log(authResult);
            document.getElementById('signinButton').setAttribute('style', 'display: none');
        } else {
            console.log('Sign-in state: ' + authResult['error']);
        }
     }
    </script>
</head>
<body>
<div id="container">
    <div id="body">
        <span id="signinButton">
            <span
                class="g-signin"
                data-callback="signinCallback"
                data-clientid="565656566-u*********.apps.googleusercontent.com"
                data-cookiepolicy="single_host_origin"
                data-requestvisibleactions="http://schema.org/AddAction"
                data-scope="https://www.googleapis.com/auth/plus.login">
            </span>
        </span>
    </div>
</div>
</body>
</html>

提前感谢。

我们可以使用访问令牌获取用户数据,只需进行ajax调用,您就完成了。使用以下代码获取成功登录后的用户数据。

 <script type="text/javascript">
      (function() {
       var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
       po.src = 'https://apis.google.com/js/client:plusone.js';
       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
     })();
     function signinCallback(authResult) {
        if (authResult['status']['signed_in']) {
            console.log(authResult);
            document.getElementById('signinButton').setAttribute('style', 'display: none');
             /* get google plus id */
            $.ajax({
                type: "GET",
                url: "https://www.googleapis.com/oauth2/v2/userinfo?access_token="+access_token
            })
            .done(function( data ){
                console.log(data);
            });
        } else {
            console.log('Sign-in state: ' + authResult['error']);
        }
     }
    </script> 

如果你想获得用户的电子邮件地址,然后改变ajax:

$.ajax({
            type: "GET",
            url: "https://www.googleapis.com/plus/v1/people/me?access_token="+access_token
        })

关于使用Google plus api获取用户数据的更多详细信息请参见此链接