chrome扩展和dropbox dropin saver错误

时间:2013-10-30 04:56:05

标签: javascript google-chrome google-chrome-extension dropbox

我正在编写Chrome扩展程序,以便将网页上的图片保存到Dropbox。我正在尝试使用dropin saver api来执行此操作,但是在点击“保存到Dropbox”链接时出现错误。

我收到的错误如下:

  

{“error”:“Origin与任何app域都不匹配”}

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

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

错误和403让我相信在Chrome扩展程序清单文件中声明权限时出现问题。但是,我已经按照documentation尝试了我认为应该工作的东西,并得到了相同的结果。我的清单文件如下:

{
  "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'"
}

我想我错过了一些明显的东西,但似乎无法将手指放在上面。看起来我的清单指定了所有必要的跨源权限。任何朝着正确方向的推动都会非常感激。

谢谢!

2 个答案:

答案 0 :(得分:4)

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

由于这是Chrome扩展程序,因此它没有通常类型的域名,因此您需要在Dropbox App控制台的Drop-ins域中添加chrome扩展ID。

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

答案 1 :(得分:0)

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

如果Saver源自您的扩展程序中的某个页面,那么您应该只需在App Console中添加该域名(chrome-extension://之后的丑陋字符串)即可。