如何从 Google 的日历 API 中直接 link 获取附件?

How do I get the direct link to an attached file from Google's Calendar API?

这是我从 Google 的日历 API 收到的部分数据:

{  
    "fileUrl":"https://drive.google.com/file/d/1q-cSkADjUnD0PGOamZKI44oIL_cXDJlg/view?usp=drive_web",
    "title":"2.png",
    "iconLink":"",
    "fileId":"1q-cSkADjUnD0PGOamZKI44oIL_cXDJlg"
}

如何实现直接 link 到文件(使用 JavaScript)以便我可以将其用作数据源?示例:

https://something.com/2.png

编辑: This link(右键单击并复制图像地址)作为数据源,我只是不知道如何动态创建它。

您需要向 fileUrl 发出 GET 请求,因为永久 "direct" 链接将不存在。

直接来自these google docs

Using alt=media To download files, you make an authorized HTTP GET request to the file's resource URL and include the query parameter alt=media. For example:

GET https://www.googleapis.com/drive/v3/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media

URL 不需要文件扩展名来让他们的服务器理解您的请求。然而,有时服务器需要一个额外的查询参数来决定发回什么。

因此您似乎还需要将 ?alt=media 附加到端点 url、fileUrl.

的末尾

然后只需使用ajax,或类似的请求方法,并向端点发送GET 请求。

使用驱动器 API 和 JS:

var fileId = '0BwwA4oUTeiV1UVNwOHItT0xfa2M';
var dest = fs.createWriteStream('/tmp/photo.jpg');
drive.files.get({
  fileId: fileId,
  alt: 'media'
})
    .on('end', function () {
      console.log('Done');
    })
    .on('error', function (err) {
      console.log('Error during download', err);
    })
    .pipe(dest);