登录多个帐户后无法使Google Drive API共享对话框生效

And*_*ler 18 javascript google-drive-api

我在使用Google Drive API在Javascript应用程序中打开共享对话框时遇到JS错误.错误是:未捕获错误:语法错误:DOM异常12.

但是,当我退出所有Google帐户然后只登录一个帐户时,共享对话框可以正常工作.只要我在新选项卡中登录第二个帐户,共享对话框就不再有效,并因上述错误而失败.

这非常类似于Google Drive SDK上的调用showSettingsDialog()会抛出拒绝显示文档,因为X-Frame-Options禁止显示.但是,我已经完成了接受的响应中显示的调试无效,即:

  • 您在Google API控制台中的Google云端硬盘SDK设置中设置的"打开方式"网址必须与您使用共享对话框的网页具有相同的域.
  • 目前,您还需要在Google云端硬盘上安装自己的应用,才能使嵌入式窗口小部件正常运行.我们目前正在努力消除这一限制因为我们推出了API的v2并不总是有意义.

相关代码是:

var shareClient = new gapi.drive.share.ShareClient(rtpg.realTimeOptions.appId);
shareClient.setItemIds([rtclient.params['fileId']]);
shareClient.showSettingsDialog();
Run Code Online (Sandbox Code Playgroud)

是否有一些方法可以使多个帐户登录?

Pro*_*eek 4

您可能需要仔细阅读有关 x 框架问题的内容:

Google Drive API,无法通过 JS 打开标准共享对话框(x-frame-options 错误)

但我认为不可能一次验证所有帐户,但可能有一个解决方法,setOAuthToken每次您想这样做时都可以验证每个帐户。

谷歌文档中指出:

重要提示:setOAuthToken 函数允许应用程序使用当前的身份验证令牌来确定选择器使用哪个 Google 帐户来显示文件。如果用户登录多个 Google 帐户,则选择器可以显示相应授权帐户的文件。

来源:

https://developers.google.com/drive/web/integrate-open