登录Google Plus API后如何获取用户数据? - javascript

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

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

如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript

我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…

打印二维阵列 - javascript

我正在尝试打印子元素。在this example之后。怎么做?。$myarray = array("DO"=>array('IDEAS','BRANDS','CREATIVE','CAMPAIGNS'), "JOCKEY"=>a…

使用JS和PHP更改弹出窗口背景图像 - javascript

我有一个JS函数:function zoom(now) { document.getElementById("popup").style.display = "block"; document.getElementById("photos").style.backgroundImage = …

变更事件时道具无法正常工作 - javascript

我有一些代码,当用户从下拉列表中选择一个项目时,这会触发一个change事件,然后调用php页面进行处理。首次加载页面时,我选择一个项目,并在触发change事件时,这应更改所选select输入的占位符并禁用相同的输入:“#box_ffrtv”。但是,发生的事情是更改仅在我在下拉菜单中进行了第二选择之后才发生,然后更改了占位符并禁用了输入。我对jquery还…

使用Selenium和python在textBox中快速编写 - javascript

我正在使用Selenium和Python(Chorme驱动程序)在文本框中编写内容,但是有很多文本框,我需要它来更快地填充它们。我使用一系列driver.find_element_by_xpath("//input[@class='string required' and @id='order_billing_name…