我的应用请求用户的“ https://www.googleapis.com/auth/drive.readonly”权限。当应用获取Google访问令牌时,将构建一个URL来访问用户选择的Google幻灯片演示文稿预览,例如:
https://docs.google.com/presentation/d/1WADAfZShdqdYKgae8C9LdpYlPgf2qjoZD2jjKln4F3M/embed?rm=minimal&access_token=ya29.....
这非常适合查看演示文稿,但是如果在幻灯片上使用了视频,则会显示以下错误:
由于我的应用正在请求对用户的Google云端硬盘进行完全读取访问,而相关视频在用户的Google云端硬盘中,为什么会发生这种情况?
答案 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