使用应用脚本“发送到驱动器”创建图像

时间:2012-06-22 10:55:27

标签: google-apps-script

大家好我正在使用send To Drive apps脚本。

现在,如果我收到的电子邮件中包含图像作为附件,则该图像存储在我指定的文件夹中,但是一旦我尝试打开它就无法看到预览。

相反,如果我手动上传Google云端硬盘中的图片,我可以看到预览。

我注意到,从应用脚本创建的图片的网址ID比手动上传的其他图片的ID长。

我看不到的图片ID示例(由apps脚本创建):

https://docs.google.com/a/xxxx.com/file/d/0B1G2PrcwzsrzMS02MGEzNjBkOS01YjAyLTRhYTktODFkNS1kNzU5NmIzYWEyNDE/edit

我可以看到的图片ID示例(手动上传)

https://docs.google.com/a/xxxx.com/file/d/0B1G2PrcwzsrzMG5kVDZuUGlqRWc/edit

如何解决修改脚本的问题?

提前谢谢

var threads = GmailApp.getUserLabelByName(gLabel).getThreads(0, 5);

  var folder  = DocsList.getFolder(gFolder);

  for (var x=0; x<threads.length; x++) {

    var messages = threads[x].getMessages();

    for (var y=0; y<messages.length; y++) {

      var att = messages[y].getAttachments();


      for (var z=0; z<att.length; z++) {
        try {

        Logger.log(att[z].getContentType());

          var file = folder.createFile(att[z]);
          Utilities.sleep(1000);
        }
        catch (e) {
          GmailApp.sendEmail(
            Session.getActiveUser().getUserLoginId(), 
            "Error: " + e.message
          );
        }
      }       
    }    
    GmailApp.getUserLabelByName(gLabel)
      .removeFromThread(threads[x]);
  }

1 个答案:

答案 0 :(得分:1)

我认为这可能与问题1239

有关

我可以使用createFile和copy方法在DocList中重现这个:

  //Using uploaded jpeg as source
    var doc =  DocsList.getFileById(id)
        DocsList.copy(doc,"test1");

副本将加载,无法预览