【问题标题】:Google Drive JavaScript SDK - Share Dialog Not WorkingGoogle Drive JavaScript SDK - 共享对话框不起作用
【发布时间】:2014-07-20 02:14:29
【问题描述】:

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

我主要用 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 必须与为应用注册的打开 URL 具有相同的来源。

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

【问题讨论】:

  • A quick search 表明不少人遇到过类似的问题。可能的原因包括:在框架内使用“共享”按钮、页面 URL/打开 URL 中的细微(尾部斜杠)差异以及未授权用户。

标签: javascript html google-drive-api


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 2012-09-05
    • 2013-03-17
    • 1970-01-01
    • 2012-09-24
    相关资源
    最近更新 更多