如何从Google的Calendar API直接链接到附件?

时间:2018-01-12 13:54:21

标签: javascript google-drive-api google-calendar-api

这是我从Google的Calendar API收到的数据的一部分:

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

如何实现文件的直接链接(使用JavaScript),以便将其用作数据源?例如:

https://something.com/2.png

修改: This链接(右键点击并复制图片地址)作为数据源,我只是不知道如何动态创建它。

1 个答案:

答案 0 :(得分:0)

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

直接来自these google docs

  

使用alt = media   要下载文件,您需要对文件的资源URL发出授权的HTTP GET请求,并包含查询参数alt = media。例如:

     

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

网址不需要服务器的文件扩展名来了解您要求的内容。但是,有时服务器需要额外的查询参数来决定要发回的内容。

因此,似乎您可能需要将?alt=media附加到端点网址fileUrl的末尾。

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

使用Drive 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);