繁体   English   中英

使用 SpreadsheetApp.newCellImage() 构建器从 URL 检索图像时出错

[英]Error retrieving image from URL with SpreadsheetApp.newCellImage() builder

我的应用程序正在尝试使用谷歌应用脚​​本将图像插入谷歌驱动表。

它工作正常......但它间歇性地挂断来自谷歌脚本的响应错误:

例外:从 URL 或错误 URL 检索图像时出错: https ://drive.google.com/uc?id=1uvjg9_ZZg2sI5RYbPMEn6xXJhhnwuFyq&export=download。

代码是:

    var fpm_mon_image = file_from_folder(id_folder_images , image_AR ) ;   // get "image_AR" from folder
    var url_mon_image = fpm_mon_image.getDownloadUrl() ; 
    var image = SpreadsheetApp.newCellImage().setSourceUrl(url_mon_image).setAltTextTitle(titre).toBuilder().build() ;    
     Utilities.sleep(1000);   // for testing ...
     SpreadsheetApp.flush();
     Utilities.sleep(1000); 
     var rangeIma= fpm_sp.getRange(scal_li_SP +1, 2) ; 
     rangeIma.setValue(image).setVerticalAlignment('bottom')  ; // stop here with error above 

它可以正常工作 5、10 次,然后挂断 2、3、5 次,然后再次正常工作....(我开始掉头发 ;-))

我试过了 :

 var srcfile = DriveApp.getFileById(id_mon_image);
 srcfile.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
 var image = fpm_sp.insertImage(srcfile.getBlob(), my_col , my_row); 

但是图像没有插入到单元格中......

你能帮忙吗? 非常感谢。

不幸的是,我无法复制您的Exception: Error retrieving image from URL or bad URL:的情况。 所以,虽然我不确定你的实际情况,但是下面的修改呢?

修改后的脚本:

在使用此脚本之前, 请在 Advanced Google services 中启用 Drive API

var fileId = "###"; // Please set the file ID of your image.

var url = Drive.Files.get(fileId).thumbnailLink.replace(/\=s.+/, "=s512");
var title = "sample title";
var image = SpreadsheetApp.newCellImage().setSourceUrl(url).setAltTextTitle(title).build();
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("A1").setValue(image);
  • 运行此脚本时,会使用 Drive API 从图像文件中检索缩略图链接。 并且,图像的图像尺寸被改变。 并且,图像被放置到活动工作表的单元格“A1”中。

  • 在这种情况下,如果出现图像大小的问题,则可以消除此问题。 而且,如果出现共享文件的问题,也可以消除此问题。 通过这个,我认为您的问题可能会被删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM