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

时间:2013-03-27 16:46:52

标签: javascript google-drive-api

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

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

这与Calling showSettingsDialog() on the Google Drive SDK throws a Refused to display document because display forbidden by 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();

是否有某种方法可以让多个帐户登录?

2 个答案:

答案 0 :(得分:4)

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

Google Drive API, can't open standard sharing dialog via JS (x-frame-options error)

但我认为不可能同时对所有帐户进行身份验证,但每次要执行此操作时,每个帐户都可能会setOAuthToken

谷歌文件中说明:

  

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

源:

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

答案 1 :(得分:2)

我们最近在setOAuthToken()添加了ShareClient方法,允许您指定对话框应使用的用户。 Drive SDK release notes中的更多详细信息。