通过Google Script将附件作为Word文档发送

时间:2014-01-10 12:16:33

标签: google-apps-script

通过Google电子表格我想发送附件。附件是Google Doc。

我可以将其作为PDF文件发送.getAs('application / PDF') - 但我需要它作为Word文档(或在Word中打开的东西)。

可以手动发送电子邮件作为Word附件,但此解决方案需要自动执行此操作。

我试过:application / vnd.openxmlformats-officedocument.wordprocessingml.document(http://en.wikipedia.org/wiki/Internet_media_type)但这不起作用。

亲切的问候

的Stefan

1 个答案:

答案 0 :(得分:2)

Google Apps脚本无法导出除pdf本地以外的任何内容,但文档API会这样做,您可以使用带参数的urlFetch来获取所需内容(不要更改这些参数,请求是匿名的,可以保留)。

这是代码,它不需要太多解释,除了必须授权urlFetch(该过程不是通常的,你将获得该脚本的第二个授权。)

function emailDocTestasDocx() {
  var id = '1I9KIVTLieQbNnmz09zfOBSBNwZ9Tp7B0kfpysaf-ooY';// an example of Google doc
  var url = 'https://docs.google.com/feeds/';
  var doc = UrlFetchApp.fetch(url+'download/documents/Export?exportFormat=doc&format=doc&id='+id,
                              googleOAuth_('docs',url)).getBlob();
  var me = Session.getEffectiveUser().getEmail();
  MailApp.sendEmail(me, 'test', 'see attachment', {attachments:[doc]});
}

function googleOAuth_(name,scope) {
  var oAuthConfig = UrlFetchApp.addOAuthService(name);
  oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
  oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
  oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
  oAuthConfig.setConsumerKey('anonymous');
  oAuthConfig.setConsumerSecret('anonymous');
  return {oAuthServiceName:name, oAuthUseToken:"always"};
}