html-如何在网站中嵌入Google云端硬盘文件夹

我在Google云端硬盘中有一个文件夹想要嵌入到我的网站中。 我找不到嵌入代码或Google云端硬盘帮助文章中记录的任何内容。

Mori asked 2020-02-15T00:17:16Z
3个解决方案
73 votes

可以在IFRAMEgrid视图中嵌入和显示Google云端硬盘文件夹:

列表显示

<iframe src="https://drive.google.com/embeddedfolderview?id=FOLDER-ID#list" style="width:100%; height:600px; border:0;"></iframe>


网格视图

<iframe src="https://drive.google.com/embeddedfolderview?id=FOLDER-ID#grid" style="width:100%; height:600px; border:0;"></iframe>



问:什么是文件夹ID(FOLDER-ID),如何获取?

答:转到Google云端硬盘>>打开文件夹>>在浏览器地址栏中查看其URL。 例如:

文件夹URL:[https://drive.google.com/drive/folders/0B1iqp0kGPjWsNDg5NWFlZjEtN2IwZC00NmZiLWE3MjktYTE2ZjZjNTZiMDY2]

资料夹ID:
0B1iqp0kGPjWsNDg5NWFlZjEtN2IwZC00NmZiLWE3MjktYTE2ZjZjNTZiMDY2

请注意需要许可的文件夹

此技术最适合具有公共访问权限的文件夹。 当您以这种方式嵌入时,仅与某些Google帐户共享的文件夹会引起麻烦。 在进行此编辑时,将显示一条消息“您需要许可”,其中带有一些按钮,可帮助您“请求访问权限”或“切换帐户”(或可能登录到Google帐户)。 这些按钮中的Javascript在Chrome的IFRAME中无法正常运行。

请访问[https://productforums.google.com/forum/#!msg/drive/GpVgCobPL2Y/_Xt7sMc1WzoJ]了解更多信息。

Mori answered 2020-02-15T00:18:14Z
10 votes

在IFRAME中嵌入Google云端硬盘目录

Google云端硬盘文件夹可以嵌入并显示在#gridSAMEORIGIN视图中(您所要做的就是单击文件或文件夹以在新标签上打开它)。 为此,只需将FOLDER-ID替换为您自己的文件夹:

列表显示

<iframe src="https://drive.google.com/embeddedfolderview?id=FOLDER-ID#list" style="width:100%; height:600px; border:0;"></iframe>

或不指定模式,因为列表模式是默认模式:

<iframe src="https://drive.google.com/embeddedfolderview?id=FOLDER-ID" style="width:100%; height:600px; border:0;"></iframe>

网格视图

<iframe src="https://drive.google.com/embeddedfolderview?id=FOLDER-ID#grid" style="width:100%; height:600px; border:0;"></iframe>

获取文件夹ID

id是文件夹URL中#grid之后的哈希(字母数字乱码)。 打开云端硬盘文件夹时,您可以在浏览器的地址栏中看到该URL。 例如,在:

https://drive.google.com/drive/folders/0B1iqp0kGPjWsNDg5NWFlZjEtN2IwZC00NmZiLWE3MjktYTE2ZjZjNTZiMDY2 

文件夹ID为#grid

具有G Suite / Google Apps域的文件夹

如果您的文件夹是Google Apps域的一部分,则可以将该域添加到URL中,以缓解权限问题(在后面进一步详细介绍):

<iframe src="https://drive.google.com/a/MY.DOMAIN.COM/embeddedfolderview?id=FOLDER-ID#grid" style="width:100%; height:600px; border:0;"></iframe>

只需将MY.DOMAIN.COM和FOLDER-ID替换为您自己的即可。

请注意需要许可的文件夹

此技术最适合具有公共访问权限的文件夹。 以这种方式嵌入仅与某些Google帐户共享的文件夹可能会造成麻烦,具体取决于用户浏览器上处于活动状态的Google帐户:

  1. 如果用户尚未登录任何Google帐户,则框架中没有任何内容。
  2. 如果用户未经授权登录到帐户访问该文件夹,则该框架将包含消息“需要权限”以及一些用于请求访问权限或“切换帐户”的按钮,但是如果最后单击该框架,则该框架将消失。
  3. 如果用户登录时没有适当的权限,然后添加授权的帐户,则在加载嵌入式云端硬盘时,Google会使用第一个活动帐户,并且用户会看到您需要许可,除非...
  4. 如果该URL包含Google Suite域,并且该用户已登录该域的帐户,则即使用户先登录另一个帐户,嵌入视图也将起作用。

空白帧是因为Google禁止通过#grid标头将其登录页面嵌入到IFRAME中(以防止帐户被盗),如果将标头设置为SAMEORIGIN,则会导致任何行为良好的浏览器拒绝加载该页面(如果不在页面中) 同一域(vg drive.google.com)。 您可以在浏览器的开发人员控制台中看到此内容。

TL; DR

要获取驱动器文件夹的列表或网格视图(您可以在其中单击文件或文件夹以在新选项卡上将其打开),请使用:

<iframe src="https://drive.google.com/embeddedfolderview?id=FOLDER-ID#grid" style="width:100%; height:600px; border:0;"></iframe>

或者,对于Google Suite /应用驱动器:

<iframe src="https://drive.google.com/a/MY.DOMAIN.COM/embeddedfolderview?id=FOLDER-ID#grid" style="width:100%; height:600px; border:0;"></iframe>

用您自己的替换MY.DOMAIN.COM和FOLDER-ID; 删除#grid以获取详细的文件列表。

对于私人文件夹,在加载带有嵌入式文件夹的页面之前,让用户登录到正确的帐户; 如果该文件夹位于Google Apps域中,则可以将该域添加到URL。 否则,他们必须先登录授权帐户。

(这个答案是森的编辑,但由于改变了他的意图而被拒绝了)

Chema answered 2020-02-15T00:20:19Z
2 votes

对于企业/ Gsuite应用程序或任何他们称呼它们的应用程序,您可以指定域(登录多个Google帐户时,原始答案出现500个错误的问题)。

<iframe 
  src="https://drive.google.com/a/YOUR_COMPANY_DOMAIN/embeddedfolderview?id=FOLDER-ID" 
  style="width:100%; height:600px; border:0;"
>
</iframe>
ElDog answered 2020-02-15T00:20:39Z
translate from https://stackoverflow.com:/questions/20681974/how-to-embed-a-google-drive-folder-in-a-website