【发布时间】:2014-09-30 01:21:09
【问题描述】:
我正在尝试从 GMail 帐户中提取 csv 附件并将它们推送到 Fusion 表中。它有时可以工作,但大多数时候它会失败并显示错误“执行失败:处理导入时出现内部错误。请重试。”来自 Fusion 表的 importRows 调用。导入的大小约为 4k,远低于 1m 的限制。
我将尝试使用 Fusion table SQL INSERT 选项而不是 importRows,但只是想看看我是否可能在 importRows 调用中做错了。我什至在调用之间设置了 5 秒的延迟,以查看是否需要更慢地馈送 Fusion 表。
这是应用脚本:
function getDataFromMailbox() {
var tableID = "XXXXXXXX";
var threads = GmailApp.getInboxThreads();
if (threads.length) {
var thread = threads.pop();
var messages = thread.getMessages();
for (var j=0; j < messages.length; j++) {
var message = messages[j];
if ( message.isUnread() ) {
var from = message.getFrom();
if (from == "xxxxxx@gmail.com") {
var attachments = message.getAttachments();
for (var k=0; k< attachments.length; k++) {
var attachment = attachments[k];
Logger.log( attachment.getSize() );
FusionTables.Table.importRows(tableID, attachment, {startLine:2});
}
} else {
thread.moveToTrash(); // Thread isn't from our source
}
message.markRead();
}
}
Logger.log("Processed %s messages", messages.length);
if ( !thread.isUnread() ) { thread.moveToArchive(); }
}
}
【问题讨论】:
标签: google-apps-script google-fusion-tables