gpt4 book ai didi

javascript - 通过 Google Apps 脚本检索修订文本

转载 作者:行者123 更新时间:2023-11-30 21:08:12 25 4
gpt4 key购买 nike

我正在尝试通过 Google Apps 脚本获取文档的修订历史记录,并且正在寻找有关如何以编程方式访问修订内容的一些建议。

使用 Drive API,我可以访问文档的一系列修订并根据用户进行迭代。返回的对象不包括修订的内容,只是一个 ID。但是,您可以获得各种内容类型(pdf、纯文本等)的下载 URL。

我想使用 UrlFetchApp 检索下载 URL 并将该内容附加到文档中。问题是获取应用程序返回整个文档标记(HTML 和 CSS),而我只想要文件的内容。

脚本

function revisionHistoryLite() {
var doc = DocumentApp.getActiveDocument();
var eds = doc.getEditors();
var body = doc.getBody();

var revs = Drive.Revisions.list(doc.getId())

var editsList = [];

for(var i=0; i<revs.items.length; i++) {
var revision = revs.items[i];
editsList.push([revision.id, revision.kind, revision.modifiedDate, revision.lastModifyingUser.emailAddress]);

if(revision.lastModifyingUser.emailAddress == "bbennett@elkhart.k12.in.us") {
var revUrl = Drive.Revisions.get(doc.getId(), revision.id).exportLinks["text/plain"];

// revUrl returns https://docs.google.com/feeds/download/documents/export/Export?id=docIdString&revision=1&exportFormat=txt

var revString = UrlFetchApp.fetch(revUrl, { contentType: "text/plain", }).getContentText();
Logger.log(revString); // Contains full HTTP markup

// Append the body contents to a temporary document for further processing
// var tempDoc = DocumentApp.create("Temp").getBody().appendParagraph(revString);


}
}
}

最佳答案

当它使用 UrlFetchApp.fetch() 从 exportLinks 下载文件时,需要授权。所以请按如下方式修改您的脚本。

发件人:

var revUrl = Drive.Revisions.get(doc.getId(), revision.id).exportLinks["text/plain"];
var revString = UrlFetchApp.fetch(revUrl, { contentType: "text/plain", }).getContentText();

收件人:

var revUrl = Drive.Revisions.get(doc.getId(), revision.id).exportLinks["text/plain"]  + "&access_token=" + ScriptApp.getOAuthToken();
var revString = UrlFetchApp.fetch(revUrl).getContentText();

由此,您可以从修订数据中下载文本数据。

编辑:

function revisionHistoryLite() {
var doc = DocumentApp.getActiveDocument();
var eds = doc.getEditors();
var body = doc.getBody();
var revs = Drive.Revisions.list(doc.getId())
var editsList = [];
for(var i=0; i<revs.items.length; i++) {
var revision = revs.items[i];
editsList.push([revision.id, revision.kind, revision.modifiedDate, revision.lastModifyingUser.emailAddress]);
if(revision.lastModifyingUser.emailAddress == "### mail address ###") {
var revUrl = Drive.Revisions.get(doc.getId(), revision.id).exportLinks["text/plain"] + "&access_token=" + ScriptApp.getOAuthToken();
var revString = UrlFetchApp.fetch(revUrl).getContentText();
Logger.log(revString); // Contains full HTTP markup
}
}
}

更新时间:2020 年 2 月 7 日

自 2020 年 1 月起,访问 token 不能与 access_token=### 等查询参数一起使用。 Ref所以请使用请求 header 的访问 token 而不是查询参数。具体如下。

var res = UrlFetchApp.fetch(url, {headers: {Authorization: "Bearer " + ScriptApp.getOAuthToken()}});

关于javascript - 通过 Google Apps 脚本检索修订文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46412094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com