首页 > 解决方案 > 无法读取未定义的属性“gmail” - 仅限 Javascript

问题描述

我正在使用 Google 的 GMail API 来获取我的电子邮件帐户中未读电子邮件的数量(并列出它们)。

我的代码直接来自 Google 的示例(如下)。控制台返回:“无法读取未定义的属性 'gmail'”。我没有发现任何声明必须定义 gmail。我错过了什么?

var query = "is:unread";
var userId = "me";

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);
      } else {
        callback(result);
      }
    });
  };
  var initialRequest = gapi.client.gmail.users.messages.list({
    'userId': userId,
    'q': query
  });
  getPageOfMessages(initialRequest, []);
}

标签: javascriptgmail-api

解决方案


您需要https://apis.google.com/js/api.js在 HTML 文档的某处包含该脚本。

那是定义gapi变量的 Google Javacsript 客户端库。如果您在定义之前尝试使用gapi,则会收到您看到的错误。

请参阅: https ://developers.google.com/api-client-library/javascript/start/start-js

在 HTML 文件的最顶部:

<script src="https://apis.google.com/js/api.js"></script>

推荐阅读