无法读取未定义的属性“ gmail”-仅适用于JavaScript

时间:2018-08-14 23:12:33

标签: javascript gmail-api

我正在使用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, []);
}

1 个答案:

答案 0 :(得分:0)

您需要在HTML文档中的某个位置包含脚本https://apis.google.com/js/api.js

这是定义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>