【问题标题】:How to use new dropbox datastore API from chrome extension?如何从 chrome 扩展中使用新的 Dropbox 数据存储 API?
【发布时间】:2013-10-10 19:10:38
【问题描述】:

我正在尝试将新的 Dropbox 数据存储 API 与我的 chrome 扩展程序一起使用。如果按照教程中指定的方式使用,身份验证将失败并出现错误 400:

Invalid redirect_uri: "chrome-extension://anzbpdekhbhcbekwmfazaophjcaabshl/chrome_oauth_receiver.html". It must exactly match one of the redirect URIs you've pre-configured for your app (including the path)

如果我将此 URL 添加到我在 Dropbox 网站上的应用配置文件中,一切正常。但是“anzbpdekhbhcbekwmfazaophjcaabshl”是一个计算机唯一值,每个用户的每个扩展安装都会有所不同。是否有可能以某种方式修复此问题,或者 Dropbox 数据存储 API 旨在用于已知重定向 url 的静态网站?

更新 1

手动/非公共扩展安装的扩展 ID 是随机的。

更新 2

我找到了一种使扩展 ID 持久化的方法:只需打包它,从私有 .pem 密钥生成一个公钥,并将此密钥的 base-64 编码值设置为清单中的“密钥”。

【问题讨论】:

  • 我认为扩展 ID(chrome-extension:// 之后的部分)不是特定于用户或计算机的,并且在安装 Chrome 扩展的任何地方都保持不变。我错了吗?
  • 其实扩展ID是google在网上商店注册时分配的。但是如果你手动启动扩展,它是动态生成的。
  • @smarx 你是对的:我找到了一种使 ID 持久化的方法。请将您的评论作为答案,以便我接受。
  • 您能发布更多关于在 chrome 扩展中使用数据存储区 API 的信息吗?我无法设置它。你说你找到了教程?
  • @jeremywho 我发现我可以通过在清单中添加“密钥”来使应用程序 ID 持久化。这允许使用数据存储 api 没有任何问题。

标签: dropbox-api


【解决方案1】:

将我的评论移至答案(有关详细信息,请参阅问题的更新):

我认为扩展 ID(紧跟在 chrome-extension:// 之后的部分)不是特定于用户或计算机的,并且在安装 Chrome 扩展的任何地方都保持不变。

【讨论】:

    【解决方案2】:

    我已成功使用 Firefox 扩展中的 Datastore API。诀窍是将保管箱脚本附加到实际网页,而不是本地页面。我的服务器上托管了一个空白页面,扩展程序打开该页面并附加了必要的脚本。从那里它将用户重定向到 Dropbox 身份验证页面。

    用户通过身份验证后,我会使用 page-worker API 在“无头”选项卡中打开同一页面。 (不知道Chrome扩展有没有等效功能)

    重定向 URL 必须是 https,因此您需要获得 SSL 证书才能使其正常工作。

    【讨论】:

    • 这是个好主意,但不适合离线chrome扩展(Dropbox API可以离线使用)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多