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);
}
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);
    });
查看Google Drive V3 下载文档以了解更多语言和选项。
GAS 中没有直接方法来获取文档的 HTML 版本,这是一个相当古老的增强请求,但Henrique Abreu最初描述的解决方法效果很好,我一直使用它......
授权过程中唯一烦人的事情需要从脚本编辑器调用,这使得在共享应用程序中使用变得困难(对于“无法使用脚本”的用户),但这只会发生一次;)。
还有一个由Romain Vialard创建的库,它使事情(有点)变得更容易......并添加了一些其他有趣的功能。
| 归档时间: | 
 | 
| 查看次数: | 13297 次 | 
| 最近记录: |