javascript - chrome 扩展和 dropbox dropin saver 错误

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

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

我收到的错误如下:

{"error": "Origin does not match any app domain"}

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

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

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

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

我想我遗漏了一些明显的东西,但似乎无法确定。似乎我的 list 指定了所有必要的跨源权限。任何朝着正确方向的插入将不胜感激。

谢谢!

最佳答案

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

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

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

关于javascript - chrome 扩展和 dropbox dropin saver 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19674172/

相关文章:

wordpress - 我的网站中的 Chrome 缓存不会更新

Javascript 函数变量突然变得未定义?

linux - 从 Linux 上的 Chrome 插件/扩展访问 NSS api

python - 即使使用 ui.WebDriverWait() chrome selenium python 后也会出现随机 TimeoutException

google-chrome-extension - Chrome教程-选项页面

html - 是否可以访问谷歌浏览器的主题?

javascript - 正则表达式匹配开头和结尾,没有中间

javascript - 改进图像列表的 CSS 过渡

javascript - TypeError : expect(. ..).to.be 不是函数

javascript - 是什么导致我的 chrome 扩展程序的 background.js 卡住并且不响应消息