我正在编写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'"
}
我想我错过了一些明显的东西,但似乎无法将手指放在上面。看起来我的清单指定了所有必要的跨源权限。任何朝着正确方向的推动都会非常感激。
谢谢!
答案 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://
之后的丑陋字符串)即可。