1

我正在编写一个 chrome 扩展程序来将网页上找到的图像保存到 Dropbox。我正在尝试使用 dropin saver api来执行此操作,但是当单击“保存到保管箱”链接时出现错误。

我收到的错误如下:

{"error": "Origin 不匹配任何应用程序域"}

对 GET 请求的检查显示以下内容:

GET https://www.dropbox.com/saver?origin=chrome-extension%3A%2F%2Fogmklfknlcgklhfljkcijikghbnghcal&app_key=MYDROPBOXKEY 403 (OK)

该错误和 403 让我相信在我的 chrome 扩展清单文件中声明权限存在问题。但是,我已经尝试了我认为应该按照文档工作的方法,并且得到了相同的结果。我的清单文件如下:

{
  "name": "Pic Grabber",
  "version": "1.0",
  "permissions": [
    "activeTab",
    "tabs", "<all_urls>", "background", "http://*/", "https://*/", "http://*/*", "https://*/*", "https://www.dropbox.com/*"
  ],
  "content_scripts": [{
        "js": ["grabber.js"],
        "matches": ["http://*/", "https://*/", "http://*/*", "https://*/*", "https://www.dropbox.com/*"]
    }],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "browser_action": {
    "default_title": "Download pictures from this page.",
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "manifest_version": 2,
  "content_security_policy": "script-src 'self' https://www.dropbox.com/static/api/1/dropins.js; object-src 'self'"
}

我想我错过了一些明显的东西,但似乎无法解决它。似乎我的清单指定了所有必要的跨域权限。任何朝着正确方向的推动将不胜感激。

谢谢!

4

2 回答 2

4

Dropbox Saver Dropin 会根据您注册应用程序时指定的域列表检查按钮显示/使用的域。

由于这是一个 chrome 扩展,它没有通常的域名类型,因此您需要在 Dropbox App Console 的 Drop-ins 域中添加 chrome 扩展 ID。

您的扩展程序 ID 是 ogmklfknlcgklhfljkcijikghbnghcal(在您发布的保管箱 URL 的原始值中可见)。如果您将其添加到域中,那么它应该可以正常工作。

于 2013-10-30T15:31:13.407 回答
0

我认为此错误来自 Dropbox,这意味着发起对 Dropbox Saver 的调用的页面不在您通过App Console允许的域上。

如果 Saver 源自扩展程序的一部分,您应该能够chrome-extension://在应用程序控制台中添加该域(后面的丑陋字符串)并且一切顺利。

于 2013-10-30T15:29:57.347 回答