【问题标题】:Drive sharing popup won't open驱动器共享弹出窗口打不开
【发布时间】:2013-04-08 11:08:35
【问题描述】:

我正在尝试在我的应用中集成“云端硬盘共享”弹出窗口,遵循以下操作方法:https://developers.google.com/drive/manage-sharing#launching_the_google_drive_sharing_dialog_in_your_app

一切都运行良好,直到我有效地打开它。 几秒钟后,我收到一条错误消息:

控制台包含以下错误:“拒绝在框架中显示 'https://drive.google.com/share?id=0BzH05IFzFfzuZWdXYzZPZHRkaUk&foreignServi...tr.apps.googleusercontent.com&embedOrigin=http%3A%2F%2Fvideo.unishared.com',因为它设置了 'X-Frame-Options ' 到 'SAMEORIGIN'。"

我想这与此要求有关:“启动对话框的页面的 URL 必须与为应用程序注册的打开 URL 具有相同的来源。”但这里就是这种情况。

我不知道这里出了什么问题。 感谢您的帮助。

编辑

我们的一些用户报告了这个在不同浏览器上随机发生的问题。 它没有完全解决。

【问题讨论】:

    标签: google-drive-api


    【解决方案1】:

    好的,我刚刚发现我的实现出了什么问题。

    我使用的是您可以在 API 控制台“API 访问”选项卡(类似于 ...apps.googleusercontent.com)中为您的客户端找到的应用 ID

    我刚刚在标题下方的“Drive SDK”标签中找到了另一个 ID。使用时弹出窗口终于出现了!

    【讨论】:

    • 您是否需要启用 Drive SDK 才能共享文件?我有 Drive API 还不够吗?我也遇到了同样的错误。
    • 嗨,是的,您需要启用 Drive SDK 才能使其工作。用于创建弹出窗口的应用 ID 是 API 控制台的 Drive SDK 选项卡中标题“Google Drive”正下方所示的 ID。
    【解决方案2】:

    您应该允许您的嵌入源作为API Console 上列入白名单的 Javascript 源。很抱歉我不能给你直接链接,但它在 API 访问选项卡下。

    【讨论】:

    • 您好,感谢您的回答!我已经设置了这些来源:“video.unishared.comstaging.unishared-gae.appspot.comlocalhost:8080”并没有解决这个问题。文档没有提到这个字段,它只是说来源必须与打开 URL 相同。
    • 还需要安装应用——授权时添加drive.install范围。 'errorMessage':“未安装 ID 为 \x22107160330549\x22 的应用程序。”,添加安装范围后:“errorMessage”:“抱歉,您请求的项目不可用。”,第二个错误可能来自事实上,ID 被硬编码为不属于我的东西。
    • 感谢史蒂夫的回答。该应用程序始终安装在我身边。 ID 没有硬编码,如您在此处看到的:gist.github.com/arnaudbreton/5398733
    【解决方案3】:

    有多个约束:

    • JS 源需要与 Drive SDK 设置中的打开或创建 URL 匹配
    • 需要安装该应用程序。

    通过试用您的演示,问题似乎在于它没有安装。错误(隐藏在其中一个响应的正文中)是:

    'errorMessage': "No application with ID \x22107160330549\x22 is installed.", 
    

    添加安装范围后:

    'errorMessage': "Sorry, the item(s) you requested are not available."
    

    第二个错误可能是因为 ID 被硬编码为不属于我的东西。

    【讨论】:

    • 感谢史蒂夫的回答。就我而言,始终安装该应用程序。 id 不是硬编码的,在调用弹窗时会传入,下面是用来实现的代码:gist.github.com/arnaudbreton/5398733 有没有办法解决匹配的打开 URL 限制?我需要对其进行测试,但不想在我的生产实例上进行。也许创建一个“临时应用程序”?
    • 是的,为 dev/staging 创建第二个应用程序并适当地设置 URL(仅供参考,我使用 forwardhq.com 代理到我的笔记本电脑,它运行良好并为我提供了稳定的 URL) 提交了一些错误放宽这些限制或使其更加灵活,但没有关于何时进行这些更改的预计时间。
    • 好的,我试试,谢谢你的回答。我昨天在生产中进行了简短的测试,URL 正确,但也不起作用。
    • 好的,我刚刚在 API 控制台的 App Engine/Drive SDK 中设置了一个具有正确暂存 URL (staging.videnot.es) 的暂存应用程序。共享弹出窗口仍未加载,但我收到了另一个错误:2939790373-v2-doclist_share.js:14327 中的“未捕获错误:语法错误:DOM 异常 12”。第 14327 行与漂亮打印的(在 Chrome 中)JS 版本匹配。
    • 你能给我一个你的暂存实例的链接吗?
    猜你喜欢
    • 2013-01-27
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    相关资源
    最近更新 更多