【发布时间】:2020-04-11 13:29:42
【问题描述】:
我似乎在从 MS Graph API 解码附件时遇到问题。至少,这就是我认为的问题所在。下面是一个简单的 JS 示例。
local.downloadAttachment = function (data) {
$.get("https://graph.microsoft.com/v1.0/me/messages/" + self.EmailID() + "/attachments/" + data.id, null, function (results) {
var bytes = new Uint8Array(results.contentBytes); // pass your byte response to this constructor
var blob = new Blob([bytes], { type: results.contentType });// change resultByte to bytes
//Alt method, also doesn't work but seems a lot closer to the right solution.
//var altBytes = $.base64.decode(results.contentBytes);
//var blob = new Blob([altBytes], { type: results.contentType });
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = results.name;
link.click();
});
};
我注意到了一些奇怪的地方。 contentType 似乎是错误的,PDF 被键入为 application/octet-stream 我本来期望 application/pdf。 JPEG 图像似乎输入正确,但我认为这不是问题。
我尝试在解码时使用 atob 并使用 /$results 以二进制形式接收文件内容。
任何想法都会很棒。
【问题讨论】:
标签: javascript microsoft-graph-api exchangewebservices azure-ad-graph-api microsoft-graph-mail