使用javascript和GMail API验证用户时出现问题

使用javascript和GMail API验证用户时出现问题,javascript,email,oauth-2.0,gmail,gmail-api,Javascript,Email,Oauth 2.0,Gmail,Gmail Api,我正在学习javascript和API,我正在练习使用Gmail。我在javascript网页中使用Gmail进行身份验证 我让它工作,但我试图控制台记录用户的电子邮件后,他们的身份验证。我尝试了很多事情,但都没有成功 当用户单击按钮handleAuthClick(事件)打开一个iframe并启动身份验证过程时 如何将电子邮件地址记录到console.log中? <script type="text/javascript"> var CLIENT_ID = '123.apps

我正在学习javascript和API,我正在练习使用Gmail。我在javascript网页中使用Gmail进行身份验证

我让它工作,但我试图控制台记录用户的电子邮件后,他们的身份验证。我尝试了很多事情,但都没有成功

当用户单击按钮
handleAuthClick(事件)
打开一个iframe并启动身份验证过程时

如何将电子邮件地址记录到console.log中?

  <script type="text/javascript">
  var CLIENT_ID = '123.apps.googleusercontent.com';
  var SCOPES = ['https://mail.google.com/'];
  /**
   * Check if current user has authorized this application.
   */
  function checkAuth() {
    gapi.auth.authorize(
      {
        'client_id': CLIENT_ID,
        'scope': SCOPES.join(' '),
        'immediate': true
      }, handleAuthResult);
  }

function listMessages(userId, query, callback) {
  var getPageOfMessages = function(request, result) {
    request.execute(function(resp) {
      result = result.concat(resp.messages);
      var nextPageToken = resp.nextPageToken;
      if (nextPageToken) {
        request = gapi.client.gmail.users.messages.list({
          'userId': userId,
          'pageToken': nextPageToken,
          'q': query
        });
        getPageOfMessages(request, result);
        console.log("hey its done" + result)
      } else {
        callback(result);
      }
    });
  };
  var initialRequest = gapi.client.gmail.users.messages.list({
    'userId': userId,
    'q': query
  });
  getPageOfMessages(initialRequest, []);
}

  /**
   * Handle response from authorization server.
   *
   * @param {Object} authResult Authorization result.
   */
  function handleAuthResult(authResult) {
    var authorizeDiv = document.getElementById('authorize-div');
    if (authResult && !authResult.error) {
      // Hide auth UI, then load client library.
      //authorizeDiv.style.display = 'none';
      loadGmailApi();
      console.log(resp.email);

    } else {
      // Show auth UI, allowing the user to initiate authorization by
      // clicking authorize button.
      //authorizeDiv.style.display = 'inline';

      console.log("hey form else")
    }
  }

  /**
   * Initiate auth flow in response to user clicking authorize button.
   *
   * @param {Event} event Button click event.
   */
  function handleAuthClick(event) {
    gapi.auth.authorize(
      {client_id: CLIENT_ID, scope: SCOPES, immediate: false},
      handleAuthResult);
    listMessages('me',"is:unread");// this returns big list of objects yee haw
    console.log("hey there from handleAuthClick");

    return false;
  }

  /**
   * Load Gmail API client library. List labels once client library
   * is loaded.
   */
  function loadGmailApi() {
    gapi.client.load('gmail', 'v1', listLabels);

  }

  /**
   * Print all Labels in the authorized user's inbox. If no labels
   * are found an appropriate message is printed.
   */
  function listLabels() {
    var request = gapi.client.gmail.users.labels.list({
      'userId': 'me'
    });

    request.execute(function(resp) {
      var labels = resp.labels;
      appendPre('Labels:');

      if (labels && labels.length > 0) {
        for (i = 0; i < labels.length; i++) {
          var label = labels[i];
          appendPre(label.name)
          cosnole.log(label.name)
        }
      } else {
        appendPre('No Labels found.');
      }
    });
  }

  function appendPre(message) {
    var pre = document.getElementById('output');
    var textContent = document.createTextNode(message + '\n');
    pre.appendChild(textContent);
  }
</script>

var CLIENT_ID='123.apps.googleusercontent.com';
变量作用域=['https://mail.google.com/'];
/**
*检查当前用户是否已授权此应用程序。
*/
函数checkAuth(){
gapi.auth.authorize(
{
“客户id”:客户id,
“scope”:SCOPES.join(“”),
“立即”:真
},handleAuthResult);
}
函数列表消息(用户ID、查询、回调){
var getPageOfMessages=函数(请求、结果){
请求执行(功能(resp){
结果=result.concat(响应消息);
var nextPageToken=resp.nextPageToken;
如果(下一步){
请求=gapi.client.gmail.users.messages.list({
“userId”:userId,
“pageToken”:下一个GetToken,
“q”:查询
});
getPageOfMessages(请求、结果);
log(“hey its done”+结果)
}否则{
回调(结果);
}
});
};
var initialRequest=gapi.client.gmail.users.messages.list({
“userId”:userId,
“q”:查询
});
getPageOfMessages(initialRequest,[]);
}
/**
*处理来自授权服务器的响应。
*
*@param{Object}authResult授权结果。
*/
函数handleAuthResult(authResult){
var authorizeDiv=document.getElementById('authorized-div');
if(authResult&!authResult.error){
//隐藏身份验证UI,然后加载客户端库。
//authorizeDiv.style.display='none';
loadGmailApi();
控制台日志(分别为电子邮件);
}否则{
//显示授权UI,允许用户通过
//单击“授权”按钮。
//authorizeDiv.style.display='inline';
log(“hey form else”)
}
}
/**
*响应用户单击“授权”按钮,启动身份验证流。
*
*@param{Event}Event按钮单击事件。
*/
函数handleAuthClick(事件){
gapi.auth.authorize(
{client_id:client_id,scope:SCOPES,immediate:false},
手工(结果);
listMessages('me',“is:unread”);//返回一个大的对象列表yee-haw
log(“从handleAuthClick看这里”);
返回false;
}
/**
*加载Gmail API客户端库。在客户端库中列出标签
*已加载。
*/
函数loadGmailApi(){
load('gmail','v1',listLabels);
}
/**
*打印授权用户收件箱中的所有标签。如果没有标签
*如果找到,则会打印相应的消息。
*/
函数listLabels(){
var request=gapi.client.gmail.users.labels.list({
“userId”:“我”
});
请求执行(功能(resp){
var标签=相应标签;
appendPre('标签:');
如果(标签和标签长度>0){
对于(i=0;i
我真的不明白你在哪里试图控制电子邮件地址?授权后,转到回调函数“handleAuthResult”,然后在函数“loadGmailApi”中加载gmail API,在此行之后:

    gapi.client.load('gmail', 'v1', listLabels);
您可以通过
gapi.auth2.BasicProfile