Mog*_*dad 5 google-apps-script google-drive-api
之前已提出与Google云端硬盘SDK相关的内容:如何获取Google云端硬盘API修订版的exportLinks.
我的问题不在于获取exportLinks - 只是API提供的那些不起作用.
以下是Advanced Drive Service文档中"Listing revisions"示例的修改版本,它记录exportLinks了给定的每个修订版本fileId.
function listRevisions(fileId) {
var revisions = Drive.Revisions.list(fileId);
if (revisions.items && revisions.items.length > 0) {
for (var i = 0; i < revisions.items.length; i++) {
var revision = revisions.items[i];
var date = new Date(revision.modifiedDate);
Logger.log('Date: %s, PDF exportLink: %s',
date.toLocaleString(),
revision.exportLinks[MimeType.PDF] );
}
} else {
Logger.log('No revisions found.');
}
}
Run Code Online (Sandbox Code Playgroud)
日志
以下是具有两个"主要"修订版的测试文档的示例日志.版本号在exportLinks中明确提供.
[14-11-13 16:40:50:511 EST] Date: November 13, 2014 4:35:55 PM EST,
PDF exportLink: https://docs.google.com/feeds/download/documents/export/Export?id=1V2zkXfyRGh_6gnCXtWlII6sxMQEDcLApRrEk-giIE2s&revision=28&exportFormat=pdf
[14-11-13 16:40:50:512 EST] Date: November 13, 2014 4:37:51 PM EST,
PDF exportLink: https://docs.google.com/feeds/download/documents/export/Export?id=1V2zkXfyRGh_6gnCXtWlII6sxMQEDcLApRrEk-giIE2s&revision=32&exportFormat=pdf
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.除了这些链接打开文档的SAME版本...最新.(来吧,试试看 - 文件是公开的.)
问题:是否有某种格式的exportLinks会实际下载指定的修订版?(也就是说'revision'参数应该被命名为其他东西)
Google工程师使用下面显示的代码重现了该问题,并针对此提出了内部错误报告.虽然示例代码位于Google Apps脚本中,但问题出在Google云端硬盘中.
您可以通过访问和主演跟踪任何进展发行4008上
谷歌驱动-SDK 问题跟踪器.
function test() {
var content = Utilities.newBlob('Apple', 'text/plain');
var file = {
title: 'Test Document'
};
file = Drive.Files.insert(file, content, {
convert: true
});
var doc = DocumentApp.openById(file.id);
doc.getBody().appendParagraph('Banana');
doc.saveAndClose();
var oauthToken = ScriptApp.getOAuthToken();
var revisions = Drive.Revisions.list(file.id).items;
revisions.forEach(function(revision) {
// revision = revisions[];
Object.keys(revision.exportLinks).forEach(function(mimeType) {
var link = revision.exportLinks[mimeType];
var response = UrlFetchApp.fetch(link, {
headers: {
Authorization: 'Bearer ' + oauthToken
}
});
var blob = response.getBlob();
var parts = blob.getName().split('.');
blob.setName(parts[0] + '-' + revision.id + '.' + parts[1]);
DriveApp.createFile(blob);
});
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
229 次 |
| 最近记录: |