Javascript 谷歌+;请求电子邮件时返回未定义的登录API

Javascript 谷歌+;请求电子邮件时返回未定义的登录API,javascript,html,google-api,google-plus,Javascript,Html,Google Api,Google Plus,我刚刚开始开发一项服务,要求我添加一个google plus登录按钮,以便返回他们的电子邮件 我的代码显示登录按钮,并允许我确定登录是否成功。不幸的是,当我试图将用户的电子邮件记录到控制台时,它只返回未定义的消息 我的代码如下: <script type="text/javascript"> (function() { var po = document.createElement('script'); po.type = 'text/javascript'

我刚刚开始开发一项服务,要求我添加一个google plus登录按钮,以便返回他们的电子邮件

我的代码显示登录按钮,并允许我确定登录是否成功。不幸的是,当我试图将用户的电子邮件记录到控制台时,它只返回未定义的消息

我的代码如下:

<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);
     })();
    </script>


<meta name="google-signin-clientid" content="264772654193-459t27quaqpc01hm7ok2fa0n677oul7c.apps.googleusercontent.com" />
<meta name="google-signin-scope" content="https://www.googleapis.com/auth/plus.login" />
<meta name="google-signin-requestvisibleactions" content="http://schema.org/AddAction" />
<meta name="google-signin-cookiepolicy" content="single_host_origin" />
<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?onload=render';
   var s = document.getElementsByTagName('script')[0];
   s.parentNode.insertBefore(po, s);
 })();

   /* Executed when the APIs finish loading */
 function render() {

   // Additional params including the callback, the rest of the params will
   // come from the page-level configuration.
   var additionalParams = {
     'callback': signinCallback
   };

   // Attach a click listener to a button to trigger the flow.
   var signinButton = document.getElementById('signinButton');
   signinButton.addEventListener('click', function() {
     gapi.auth.signIn(additionalParams); // Will use page level configuration
   });
 }

function signinCallback(authResult) {
  if (authResult['status']['signed_in']) {
    document.getElementById('signinButton').setAttribute('style', 'display: none');
    getemail();
  } else {
    console.log('Sign-in state: ' + authResult['error']);
  }
}
function getemail(){
gapi.client.load('oauth2', 'v2', function() {
  gapi.client.oauth2.userinfo.get().execute(function(resp) {
    // Shows user email
    console.log(resp.email);
  })
});
}

</script>
<button id="signinButton">Sign in with Google</button>

(功能(){
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);
})();
(功能(){
var po=document.createElement('script');
po.type='text/javascript';po.async=true;
po.src=https://apis.google.com/js/client:plusone.js?onload=render';
var s=document.getElementsByTagName('script')[0];
s、 parentNode.insertBefore(po,s);
})();
/*当API完成加载时执行*/
函数render(){
//其他参数包括回调,其余参数将
//来自页面级配置。
var附加参数={
“回调”:signinCallback
};
//将单击侦听器附加到按钮以触发流。
var signinButton=document.getElementById('signinButton');
signinButton.addEventListener('click',function(){
gapi.auth.signIn(additionalParams);//将使用页面级配置
});
}
函数signinCallback(authResult){
如果(authResult['status']['signed_in']){
document.getElementById('signinButton').setAttribute('style','display:none');
getemail();
}否则{
log('登录状态:'+authResult['error']);
}
}
函数getemail(){
load('oauth2','v2',function(){
gapi.client.oauth2.userinfo.get().execute(函数(resp){
//显示用户电子邮件
控制台日志(分别为电子邮件);
})
});
}
使用谷歌登录
userinfo端点是,不要再使用它们了。