使用 DrivePicker 时获取网页内容 link

When using DrivePicker get the webcontent link

在表格上我放了一个 DrivePicker widget/button。此按钮打开我的 Google 驱动器,我可以 select 图像。要在 Image 小部件中显示此图像,我需要网络内容 link 而不是文件 URL link。文件 URL link 无法使用。

通过 属性 小部件的 DrivePicker 编辑器,我将以下代码放在 onDocumentSelect 部分。

varId = result.docs[0].id;
widget.datasource.item.strArtikelAfbeeldingId = result.docs[0].id;
widget.datasource.item.strArtikelAfbeeldingUrl = Drive.Files.get(varId).webContentLink;

很遗憾,我没有得到任何网页内容link,并收到以下错误消息

Drive is not defined at pageTabelArtikelen.Form1.Form1Body.DrivePicker1.onDocumentSelect:3:50

如何在使用 DrivePicker 小部件时获取 selected 图片的网页内容link?

您需要 运行 客户端的服务器功能才能使用云端硬盘。所以你仍然可以 运行 onDocumentSelect 事件的这个函数,但是你会想要声明一个服务器函数,比如 getFileWebContent() 然后将你的事件代码更改为:

客户

var Id = widget.selectedDocId;
    google.script.run
      .withSuccessHandler(function() {
      //do something here with the returned link from server;
      })
      .withFailureHandler(function() {
      //optional failure handler;
      })
      .getFileWebContent(Id);

服务器

function getFileWebContent(Id) {
  var link = Drive.Files.get(Id).WebContentLink;
  return link;
}

运行 模型 onCreate 事件中的服务器代码更理想,它是一个服务器函数。在这种情况下,您的模型可以有一个文件 ID 字段,在您的 onCreate 事件中,您将 运行

var link = Drive.Files.get(record.FileId).webContentLink;
record.WebLink = link;