使用基于令牌的身份验证从 Bitbucket 检索单个原始文件

Retrieving single raw file from Bitbucket with token based authentication

我在 these suggestions 之后成功地检索了我的访问令牌和刷新令牌,我还可以使用访问令牌克隆我的私有存储库。但是,我现在要做的是使用相同类型的基于令牌的身份验证从我的私有存储库中检索单个原始文件。到目前为止我尝试的是:

curl "https://x-token-auth:{access_token}@bitbucket.org/michelezamuner/bpkg-test/raw/master/package.json"

但我收到此错误消息:

This endpoint does not support token-based authentication

实际上我一开始甚至不知道是否可以用 Bitbucket 做类似的事情,但我没有发现任何地方明确禁止这样做。有谁知道这是否可能,以及如何完成?谢谢!

是的,要将 API 与 OAuth 2 Bearer 令牌一起使用,as per the spec,您应该通过以下任何一种方式传递它(按偏好降序排列):

  • 授权请求header:Authorization: Bearer mF_9.B5f-4.1JqM(注意缺少用户名元素)
  • application/x-www-form-urlencoded POSTs
  • 中编码 body 参数 (access_token)
  • 作为 URI 查询参数:/resource?access_token=mF_9.B5f-4.1JqM

由于 Git 和 Mercurial 不能很好地满足这些要求,我们发明了伪造的 x-token-auth 用户名填充符。但是,这仅适用于 git/hg。 Bitbucket 的所有其他部分都遵循 OAuth 2 Bearer Token RFC。

编辑:

我现在意识到你实际上并没有达到 API。您点击的是我们网站的一个 URL。 API 和 UI 是不同的属性,仅 API 支持 OAuth。 API 位于 api.bitbucket.org 域下,而 bitbucket.org 是网站。这些域不可互换。

相反,尝试:

$ curl -H "Authorization: Bearer <token>" https://api.bitbucket.org/1.0/repositories/michelezamuner/bpkg-test/src/master/package.json