Google幻灯片通过“ access_token”进行视频访问

时间:2019-11-18 21:14:16

标签: google-drive-api google-slides-api google-slides

我的应用请求用户的“ https://www.googleapis.com/auth/drive.readonly”权限。当应用获取Google访问令牌时,将构建一个URL来访问用户选择的Google幻灯片演示文稿预览,例如:

https://docs.google.com/presentation/d/1WADAfZShdqdYKgae8C9LdpYlPgf2qjoZD2jjKln4F3M/embed?rm=minimal&access_token=ya29.....

这非常适合查看演示文稿,但是如果在幻灯片上使用了视频,则会显示以下错误: enter image description here

由于我的应用正在请求对用户的Google云端硬盘进行完全读取访问,而相关视频在用户的Google云端硬盘中,为什么会发生这种情况?

2 个答案:

答案 0 :(得分:1)

之所以发生这种情况,是因为您仍然必须让其他用户访问您的视频本身,因此您需要将其共享给他们,就像使用云端硬盘中其他任何类型的文件一样。

要以编程方式执行此操作,您将需要使用Drive API并在Files: update项中建立一个请求,如下所示:

[
  {
    'type': 'user',
    'role': 'writer',
    'emailAddress': 'user@example.com'
  }, {
    'type': 'domain',
    'role': 'writer',
    'domain': 'example.com'
  }
]

编辑

对于我现在可以理解的内容。为了能够观看视频,请执行以下操作:

1)右键单击视频。

2)单击共享。

3)单击“高级”(位于右下角)。

4)单击“更改...”。

5)选择“在-具有链接的任何人上”,并将访问权限设置为“可以编辑”。

使用“ access_token”查询参数时,Google幻灯片将在驱动程序中搜索视频的URL,您必须为其设置共享权限。

博士说:

Images可以由有权访问演示文稿的任何人访问:

  

图像的URL,默认生存期为30分钟。这个网址是   标记有请求者的帐户。知道网址的人   有效地访问图像作为原始请求者。进入   如果演示文稿的共享设置更改,则图像可能会丢失。

Videos必须按照文档所述配置共享设置:

  

视频的URL。只要源视频存在,该URL就有效   并且共享设置不会更改。

通知:两者之间的区别: 任何具有URL的人都可以作为原始请求者有效地访问图像。

更新

我正在更新我的答案,因为遇到this,该状态指出通过 访问令牌查询参数 授权您的请求以连接到Drive API将于2020年1月1日开始弃用。

因此,您现在需要使用HTTP header发出请求。 我的答案应被视为一种解决方法,因为它将很快被弃用。

文档

您可以在以下链接中找到有关Slides API和Drive API的更多信息:

答案 1 :(得分:0)

尽管您将视频与演示文稿存储在相同的驱动器位置,但我猜想它“嵌入在幻灯片中”可能无法访问。

但是,如果您使用相同的访问令牌来单独观看视频,则可以访问该视频。

最好单独存储视频,然后将其嵌入到演示文稿中,然后使用其各自的作用域进行访问。

如果您选择走这条路线,

我认为您还需要允许以下范围访问演示文稿中的视频,分别是drive.photos.readonly,youtube.force-ssl。与其他驱动器示波器一起,只要您以以下两种方式之一存储视频即可。 因此,在请求access_token时,请使用相关范围并获取访问令牌,并在以后的时间点使用该令牌来访问您的资源。

2个选项,

使用Drive API时

https://www.googleapis.com/auth/drive.photos.readonly
查看您的Google相册中的照片,视频和相册

使用Youtube时

https://www.googleapis.com/auth/youtube.force-ssl 查看,编辑和永久删除您的YouTube视频,评分,评论和字幕

Google API文档-

https://developers.google.com/identity/protocols/googlescopes