谷歌驱动JavaScript SDK -共享对话框不工作

Google Drive JavaScript SDK - Share Dialog Not Working

本文关键字:共享 对话框 工作 SDK JavaScript 谷歌      更新时间:2023-09-26

我有一个使用Google Drive SDK设置的应用程序(ards)。

我主要用PHP处理这个应用程序的数据,但是一些功能(比如共享对话框)使用JavaScript API。

<script type="text/javascript" src="https://apis.google.com/js/api.js"></script>
<script type="text/javascript">
    init = function() {
        s = new gapi.drive.share.ShareClient('737617002551');
        s.setItemIds(["ncle837jp4berdbjftouwixsjub1fvt2"]);
    }
    window.onload = function() {
        gapi.load('drive-share', init);
    }
</script>

问题是当我尝试使用s.showSettingsDialog();启动共享对话框时,共享系统出现故障。弹出一个带有加载消息的空白模态,几秒钟后,我收到以下错误消息:

对不起,现在无法分享。请稍后再试。

在进一步调查后,在开发控制台中也有一个错误消息:

拒绝在帧中显示'https://drive.google.com/share…',因为它将'X-Frame-Options'设置为'SAMEORIGIN'

该消息出现两次:一次是在gapi.load();呼叫时,一次是在s.showSettingsDialog();呼叫时。在Google文档中,它说共享模式只有三个要求:

  1. 用户登录到Google
  2. 用户已经安装了你的应用
  3. 启动对话框页面的URL必须与应用程序注册的Open URL具有相同的来源。

然而,据我所知,我的应用程序符合这三个规则。因此,对话框应该看起来像正常的

共享对话框对内容安全策略有严格的要求。您的应用程序必须遵循这些严格的要求。任何偏差都会导致"共享"对话框出现这样的问题。

此链接可以帮助您进一步了解这些要求:https://developer.chrome.com/extensions/contentSecurityPolicy