javascript - 登录google plus api后如何获取用户数据?

标签 javascript php google-plus

我使用以下代码在使用 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>

提前致谢。

最佳答案

我们可以使用访问 token 获取用户数据,只需进行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
        })

see this link for more deatils about get user data using google plus api

关于javascript - 登录google plus api后如何获取用户数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24863652/

相关文章:

php - 如何使用 PHP 脚本提取 TNEF winmail.dat?

java - 运行示例代码时找不到 URL

javascript - 使用正则表达式测试电子邮件地址中 `@` 符号后是否没有特殊字符或仅数字

javascript - 为什么从文件导入 * 执行代码?

javascript - 更改 WooCommerce 中某些产品的 "Sold out"

PHP/MYSQLi 绑定(bind)结果

javascript - Google+ signinCallback 调用了两次并且在处理过程中丢失了 authresult

android - 谷歌加共享网址不呈现

javascript - 对象或数组的首选声明约定是什么 : const or let?

javascript - 无法将事件绑定(bind)到多个 <select>,只能绑定(bind)第一个子元素