【发布时间】: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 文档中,它说共享模式只有三个要求:
- 用户已登录 Google
- 用户已安装您的应用
- 启动对话框的页面 URL 必须与为应用注册的打开 URL 具有相同的来源。
但是,据我所知,我的应用程序符合这三个规则。因此,对话框应该看起来正常。
【问题讨论】:
-
A quick search 表明不少人遇到过类似的问题。可能的原因包括:在框架内使用“共享”按钮、页面 URL/打开 URL 中的细微(尾部斜杠)差异以及未授权用户。
标签: javascript html google-drive-api