Chrome 扩展程序和保管箱投放保护程序错误

chrome extension and dropbox dropin saver error

本文关键字:程序 保护 错误 保管箱 扩展 Chrome      更新时间:2023-09-26

我正在编写一个Chrome扩展程序,用于将网页上的图像保存到Dropbox。我正在尝试使用dropin保护程序api来执行此操作,但是单击"保存到dropbox"链接时出现错误。

我收到的错误如下:

{"错误": "源与任何应用程序域都不匹配"}

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

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

谢谢!

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

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

您的扩展 ID 是 ogmklfknlcgklhfljkcijikghbnghcal(在您发布的 Dropbox 网址的源值中可见)。如果您将其添加到域中的删除中,那么它应该可以正常工作。

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

如果 Saver 源自属于扩展的页面,则应该能够在 App Console 中添加该域(chrome-extension://后面的丑陋字符串),然后就可以使用了。