我正在尝试以编程方式将Google云端硬盘中的图片添加到Google表单中。通过使用Google示例,我可以使用对静态图像URL的引用来使其工作:
var img = UrlFetchApp.fetch('https://www.google.com/images/srpr/logo4w.png');
form.addImageItem().setImage(img);
可以,但是我想引用我的Google云端硬盘帐户中的图片。
如果我尝试使用图像共享链接到Google云端硬盘图像,则会收到错误消息:
var img = UrlFetchApp.fetch("https://drive.google.com/open?id=0B_u2iAm1LaoZSHd1TTExcDFrbUU");
form.addImageItem().setImage(img);
错误:“ Blob对象必须具有此操作的图像内容类型。”
如果我尝试通过其ID打开文件,则会收到另一个错误:
var img = DriveApp.getFileById("0B_u2iAm1LaoZSHd1TTExcDFrbUU");
form.addImageItem(img);
错误:“无法添加图像,请稍候,然后重试。”
我似乎找不到任何有关如何实现此目标或做错事情的文档。我尝试将Google云端硬盘中图片上的共享设置更改为公开。而且,我尝试为Google云端硬盘中的图像获取静态图像URL,但是似乎唯一可用的URL是共享URL,该共享URL进入图像的保留/显示页面,而不是实际图像本身。
抱歉,我认为我发布了错误的代码段,所以实际上我在做的是:
var img = DriveApp.getFileById("a_valid_drive_file_id_here");
var imageItem = form.addImageItem();
imageItem.setImage(img);
并得到“无法添加图像,请稍等片刻,然后重试。” 错误。
但是,我想我已经回答了我自己的问题,上面的示例(通过ID获取文件并调用setImage)确实适用于存储在Google云端硬盘中的图像,但是如果图像太大,则会出现错误。不幸的是,API似乎没有指定任何大小限制,并且错误消息不是很有用,并且也没有说明图像太大。
因此,我不知道以这种方式添加的图像的大小限制是多少,但是如果其他任何人有相同的错误,请尝试减小图像文件的大小。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句