【发布时间】:2016-02-22 02:47:50
【问题描述】:
我正在创建一个网络应用程序来使用 gmail api 阅读我的电子邮件。所有方法都有效(users.messages.list、users.messages.get 等)并显示在 console.log 和我的页面 HTML 中。我注意到的一件事是我必须使用 atob 来解码 body.data 并插入我的 HTML。现在我必须下载或阅读示例 file.docx 的附件,我在回调后使用这个示例 here 我注意到我也必须解码,但如果我这样做了,那里没有下载或阅读的链接,只有microsoft word的一些代码。如果我复制此代码并创建一个文档并粘贴它,则说明文件已损坏。
我的代码:
function getAttachments(messageID, parts, callback) {
//console.log(parts);
var attachId = parts.body.attachmentId;
var request = gapi.client.gmail.users.messages.attachments.get({
'id': attachId,
'messageId': messageID,
'userId': 'me'
});
request.execute(function (attachment) {
callback(parts.filename, parts.mimeType, attachment);
});
}
if (att.length > 0) {
for (var i in att) {
getAttachments(response.id, att[i], function (filename, mimeType, attachment) {
console.clear();
console.log(filename, mimeType, attachment);
console.log(atob(attachment.data.replace(/-/g, '+').replace(/_/g, '/')));
inline.append('<a href="" style="display: block">' + filename + '</a>');
});
}
}
更新
我找到了解决方案here
【问题讨论】:
-
window.location = 'data:'+mimeType+';base64,'+attachment.data.replace(/-/g, '+').replace(/_/g, '/');怎么样 -
它成功了,但是当我点击我的链接时,浏览器开始下载名为“download.doc”的下载,有没有办法下载真实姓名的文档?当我尝试下载像 .rar (11MB) 这样的大文件时,我意识到它不起作用。
-
代码为:
var link = 'data:' + mimeType + ';base64,' + attachment.data.replace(/-/g, '+').replace(/_/g, '/'); inline.append('<a href="' + link + '" style="display: block">' + filename + '</a>'); -
当我使用 gapi.client.gmail.users.messages.attachments.get 然后它通过 gmail 是未定义的......以及如何通过授权..Plz
标签: javascript gmail-api