Ray*_*ins 11 google-docs google-apps-script
我有一个疯狂的想法,我可以为一个不熟练的用户朋友建立一个网站博客,使用Google Drive Documents来支持它.我能够创建一个编译文档列表的contentService.但是,我看不到将文档转换为HTML的方法.我知道Google可以在网页中呈现文档,所以我想知道是否有可能获得在我的内容服务中使用的呈现版本.
这可能吗?
St3*_*3ph 19
你可以试试这段代码:
function getGoogleDocumentAsHTML(){
var id = DocumentApp.getActiveDocument().getId() ;
var forDriveScope = DriveApp.getStorageUsed(); //needed to get Drive Scope requested
var url = "https://docs.google.com/feeds/download/documents/export/Export?id="+id+"&exportFormat=html";
var param = {
method : "get",
headers : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
muteHttpExceptions:true,
};
var html = UrlFetchApp.fetch(url,param).getContentText();
Logger.log(html);
}
Run Code Online (Sandbox Code Playgroud)
Node.js 解决方案
以下是如何使用谷歌驱动器的 node.js 客户端库获取 html 格式的谷歌文档。
// import googleapis npm package
var google = require('googleapis');
// variables
var fileId = '<google drive doc file id>',
accessToken = '<oauth access token>';
// oauth setup
var OAuth2 = google.auth.OAuth2,
OAuth2Client = new OAuth2();
// set oauth credentials
OAuth2Client.setCredentials({access_token: accessToken});
// google drive setup
var drive = google.drive({version: 'v3', auth: OAuth2Client});
// download file as text/html
var buffers = [];
drive.files.export(
{
fileId: fileId,
mimeType: 'text/html'
}
)
.on('error', function(err) {
// handle error
})
.on('data', function(data) {
buffers.push(data); // data is a buffer
})
.on('end', function() {
var buffer = Buffer.concat(buffers),
googleDocAsHtml = buffer.toString();
console.log(googleDocAsHtml);
});
Run Code Online (Sandbox Code Playgroud)
查看Google Drive V3 下载文档以了解更多语言和选项。
GAS 中没有直接方法来获取文档的 HTML 版本,这是一个相当古老的增强请求,但Henrique Abreu最初描述的解决方法效果很好,我一直使用它......
授权过程中唯一烦人的事情需要从脚本编辑器调用,这使得在共享应用程序中使用变得困难(对于“无法使用脚本”的用户),但这只会发生一次;)。
还有一个由Romain Vialard创建的库,它使事情(有点)变得更容易......并添加了一些其他有趣的功能。
| 归档时间: |
|
| 查看次数: |
13297 次 |
| 最近记录: |