【发布时间】:2016-01-11 05:35:34
【问题描述】:
我在创建每晚运行的 google 脚本时遇到问题。当我从脚本文件运行代码并按预期运行时,代码运行良好,但是当由安装的触发器执行时,我得到以下信息:
TypeError:无法从未定义中读取属性“长度”。 (第 17 行,文件“Main”)
编辑: 要清楚,我知道使用的特定查询必须返回结果,因为从脚本编辑器运行相同的脚本工作正常
代码:
function doGet(query) {
var sSheet = sheetSelect(), //calls spreadsheet selection function and assigns the spreadsheet to variable
queriedMessages, //object to store the queried messages list
pageToken, //string token value that will be pulled from the queredMessages
auth = 'me';
if (!query) query = 'in:all newer_than:1d -is:chats -in:trash';
do {
queriedMessages = Gmail.Users.Messages.list(auth, {'q':query, 'pageToken':pageToken}); //callls the Gmail API to query messages
dataOutput(sSheet, queriedMessages.messages, queriedMessages.messages.length); //calls function to output all data to spreadsheet from the current list
pageToken = queriedMessages.nextPageToken; //gets the next page token from the list
}
while (pageToken); //the loop is executed until there are no more next page tokens left
}
任何想法为什么它的行为如此不同?我尝试为特定电子邮件提供 userId。似乎这可能是某种身份验证问题,但除了忘记 Gmail API 并绕道使用 Gmail 应用程序之外,我无法弄清楚如何解决它,因为这似乎是 Gmail API 方法 messages.list() 的问题
提前感谢您的帮助!
我设法解决了这个问题。问题是我想留下一个选项来通过函数调用传递查询。那么问题是安装的触发器实际上将一个变量传递给查询变量,然后没有设置一个新的触发器。
【问题讨论】:
标签: google-apps-script gmail-api