javascript - 无法读取未定义的属性“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, []);
}
解决方案
您需要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>
推荐阅读
- sql - 查询很慢。由于联合 ALL,问题是“由其他会话读取”
- python-3.x - 如何使用 Python 3 并行下载和解析 HTML 文件?
- php - CI 全局变量
- google-apps-script - iOS 日历和 Google 日历上的事件之间的差异
- log4j2 - 是否可以以 XML 格式显示当前的 Log4j2(运行时)配置
- reactjs - 使用 d3.csv 加载数据后无法更新 React 中的状态
- java - 表达式 ++a,a,a-- 在 C 和 Java 中的输出
- java - 运行java来解决
- java - 如何在 Java 中正确复制带有对象的集合
- javascript - 2019 年 IE11 的 Polyfills