gpt4 book ai didi

javascript - 使用 Google Drive SDK 共享文件

转载 作者:搜寻专家 更新时间:2023-11-01 04:42:07 26 4
gpt4 key购买 nike

我一直在关注 Google 的文档以在云端硬盘上共享文件:Share Files

如果我从 Google 云端硬盘界面上传文件到 Google 云端硬盘,然后尝试从我的网络应用程序共享此文件,我会在我的 javascript 控制台中收到以下错误:

在 Chrome 中:

Refused to display 'https://drive.google.com/share?id=0B6UmN_AivG7SLWVYakF2Rk1CdDg&foreignServi…=postMessage&appId=958414147877&embedOrigin=http%3A%2F%2Fsandbox.velop.org' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'. 

在火狐中:

[14:04:41.157] Load denied by X-Frame-Options: https://drive.google.com/share?id=0B6UmN_AivG7SLWVYakF2Rk1CdDg&foreignService=explorer&shareService=explorer&shareProtocolVersion=2&command=init&subapp=10&popupWindowsEnabled=true&shareUiType=default&rand=1370585078609&theme=2&client=postMessage&appId=958414147877&embedOrigin=http%3A%2F%2Fsandbox.velop.org does not permit cross-origin framing.

现在奇怪的是,如果我从我的 webapp 创建文件并通过 api 上传到云端硬盘,我就可以毫无问题地共享文件。

更奇怪的是,我从云端硬盘中打开文件一次就足够了(我已经在我的云端硬盘中安装了网络应用程序,所以我可以使用我的网络应用程序打开文件)以便能够共享它,即使以后我不再使用云端硬盘打开文件。

知道是什么导致了这种行为吗?

在我的 Drive SDK 控制台中,我将打开 URL 设置为:http://sandbox.velop.org/my-google-drive/detail

当我使用我的网络应用打开云端硬盘中的文件时,云端硬盘将我重定向到:http://sandbox.velop.org/my-google-drive/detail?state=%7B%22ids%22: %5B%220B6UmN_AivG7SLWVYakF2Rk1CdDg%22%5D,%22action%22:%22open%22,%22userId%22:%22105908447865504163566%22%7D(可分享)

当我在我的网络应用程序中打开文件时,URL 类似于:http://sandbox.velop.org/my-google-drive/0B6UmN_AivG7SLWVYakF2Rk1CdDg/detail(只有打开才能共享从驱动器之前)

编辑:

我意识到这是 Google Drive API 的标准行为,如 here 所述:

When users approve these scopes, the app is installed for the user, with access to files that the user creates or opens with the app.

有没有办法让应用程序打开/写入任何文件?

我认为在注册我的应用程序时使用 https://www.googleapis.com/auth/drive 范围可以让我这样做,但似乎并非如此。 .

最佳答案

我遇到了完全相同的问题。

我的应用程序正在请求完整的驱动器范围(因此该应用程序应该可以访问所有文件)。但只有当用户之前从驱动器打开文件时,共享才有效。从驱动器打开的文件似乎有一些神奇的“while-listing”。

在我得到...之前访问尚未从驱动器打开的文件时

拒绝在框架中显示 htps://drive.google.com/share?id=0534534543iTEhYamxfUnc2MnM&foreignServi…ent=postMessage&appId=46459361793&embedOrigin=http%3A%2F%2Fwww.editey.com' 因为它设置了“X-Frame” -选项'到'SAMEORIGIN'。

...这显然具有误导性,因为共享按钮不在框架中。

在新的浏览器选项卡中打开给定的 url 可以提示真正的根本原因:应用程序“3453459361793”无权访问文档“0B0o5345345DAc_SiTEhYamxfUnc2MnM”。

我的应用程序应该可以访问该文档,但看起来“共享对话框”就像一个单独的应用程序,只允许访问以前从驱动器打开的文件。

关于javascript - 使用 Google Drive SDK 共享文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16977464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com