GMAIL API“ Users.messages:get ”不提取包含超过5MB附件的邮件的完整原始数据,这反过来会抛出“ Unterminated string literal “由于JSON不完整。
function insertMessage(messageId) {
var url = "https://www.googleapis.com/gmail/v1/users/me/messages/" + messageId + "?format=raw&fields=raw";
var headers = {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken()
}
var params = {
method: "get",
contentType: "application/json",
headers: headers,
muteHttpExceptions: true
}
var response = UrlFetchApp.fetch(url, params);
var rawMsg = JSON.parse(response)["raw"].toString().replace(/\-/g, '+').replace(/\_/g, '/');
}
以上情况适用于没有附件或附件低于5MB的邮件。
如果我更改为以下行,则不会出现任何错误,但excel的邮件附件会损坏,如果没有图片,则会包含一些错误。
var rawMsg = JSON.parse(response+'"}')["raw"].toString().replace(/\-/g, '+').replace(/\_/g, '/');
我已经在Google Issue Tracker提出了问题。是否有其他方法可以获取原始数据以及所有附件?