使用googlescript向docx文件发送电子邮件

时间:2018-04-01 18:07:39

标签: javascript gsuite

我只是一个使用谷歌脚本的初学者,所以如果这是一个非常愚蠢的问题,请善待:)

我的脚本目前通过电子邮件发送pdf,这是从谷歌驱动器文件创建的,如下所示:

var pdf = DriveApp.getFileById(copyId).getAs("application/pdf");

我也想通过电子邮件发送docx文件,但当然不太容易。 我找到了一种方法:

Using Google Script to send an email with a Word doc attachment

...但它似乎使用了一个不再有效的旧解决方案。代码:

var url = 'https://docs.google.com/feeds/';
var doc = UrlFetchApp.fetch(url+'download/documents/Export?exportFormat=doc&format=doc&id='+copyId,
googleOAuth_('docs',url)).getBlob();

错误:

  

执行失败:ReferenceError:未定义“googleOAuth_”。

我使用正确的方法但是有错误,还是有更好的方法来导出docx?

非常感谢您的帮助和耐心!

1 个答案:

答案 0 :(得分:0)

如果您仍在寻找解决方案,那么这个答案怎么样?要将Google文档转换为docx并导出docx,请使用访问令牌。在您的情况下,您可以使用ScriptApp.getOAuthToken()作为访问令牌。那么下面的修改呢?

来自:

var url = 'https://docs.google.com/feeds/';
var doc = UrlFetchApp.fetch(url+'download/documents/Export?exportFormat=doc&format=doc&id='+copyId,
googleOAuth_('docs',url)).getBlob();

致:

var url = "https://docs.google.com/feeds/download/documents/export/Export?id=" + copyId + "&format=docx&access_token=" + ScriptApp.getOAuthToken();
var docx = UrlFetchApp.fetch(url).getBlob();

注意:

  • 您可以将访问令牌用作查询参数。
  • 在您的问题中,您需要一个docx文件。但是在您的脚本中,您似乎需要一个doc文件。
    • 在此修改中,使用docx。如果您需要doc文件,请修改它。
  • 在修改后的脚本中,docx是docx的blob。请使用此代替脚本的pdf

如果我误解了你的问题,我很抱歉。