6

在为使用他们的 API V3 在 Github 上发布一个私人要点而奋斗了很长时间之后,我几乎放弃了。几乎。可能有人也遇到过类似的问题,或者知道以下行为的原因可能是什么:

现在 curl 命令如下所示:

curl -H "Authorization: bearer MY_AUTHORIZATION_TOKE" -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"public":false,"files":{"test.txt":{"content":"String file contents"}}}' https://api.github.com/gists

我也试过

curl -H "Authorization: bearer MY_AUTHORIZATION_TOKE" -X POST -d '{"public":false,"files":{"test.txt":{"content":"String file contents"}}}' https://api.github.com/gists

我可以使用完全相同的数据在没有授权令牌的情况下创建要点:

curl -X POST -d '{"public":true,"files":{"test.txt":{"content":"String file contents"}}}' https://api.github.com/gists

但在这种情况下,它将是匿名的

如果我打算将其公开发布,结果相同

无论如何,Github 都会返回我

HTTP/1.1 404 Not Found
{
  "message": "Not Found"
}

我很确定我已获得授权,因为curl -H "Authorization: bearer MY_AUTHORIZATION_TOKE" https://api.github.com/user我返回了我的用户详细信息。

应用范围如下:

https://github.com/login/oauth/authorize?client_id=...&scope=gist

因此,它应该具有读取和写入权限。

4

1 回答 1

1

您的 OAuth2 令牌似乎没有所需的gist范围。

如果您curl使用参数运行命令,-v您可以看到发送到请求(标头)的范围以及使用发送的令牌成功执行X-OAuth-Scopes请求(标头)所需的范围。X-Accepted-OAuth-Scopes

如果您没有gist在标题值中看到列出,X-OAuth-Scopes那么这就是您的问题。

于 2012-05-12T22:34:41.817 回答