首页 > 解决方案 > 当有多个帐户登录时 gapi.drive.share.ShareClient 失败

问题描述

我收到以下错误:

“抱歉,暂时无法分享,请稍后再试”。

我正在使用以下代码

var shareClient = new gapi.drive.share.ShareClient(this.appId);
    shareClient.setOAuthToken(gapi.auth.getToken().access_token);
    shareClient.setItemIds([id]);
    shareClient.showSettingsDialog();

控制台显示以下错误:

无法在“DOMWindow”上执行“postMessage”:提供的目标来源(“ https://docs.google.com ”)与收件人窗口的来源(“ https://example.com ” )不匹配。

加载“ https://docs.google.com/picker?protocol=gadgets&origin= ...时遇到无效的“X-Frame-Options”标头

仅在使用 GSuite 帐户并使用多个帐户(例如,我的个人帐户和我的企业 GSuite 帐户)登录时才会出现此错误

在相同的设置中使用我的个人帐户可以正常工作

我在 2014 年发现了关于类似问题的老问题。谷歌解决了这个问题(通过引入 setOAuthToken 函数)。所以,似乎那些老问题与我当前的问题无关

谢谢

更新:

我发现只有第一个登录到 Google 的帐户才能与共享客户端一起使用(无论其类型如何)

例如:

(1) 以用户 X 登录

(2) 以用户 Y 登录

(3) 以用户 X 的身份调用 ShareClient(有效)

(4) 以用户 Y 的身份调用 ShareClient(失败)

从这两个帐户中唱出然后反向

(1) 以用户 Y 登录

(2) 以用户 X 登录

(3) 以用户 Y 的身份调用 ShareClient(有效)

(4) 以用户 X 的身份调用 ShareClient(失败)

标签: google-drive-apigoogle-docs-api

解决方案


推荐阅读