使用curl使用Github API v3创建新的要点

时间:2012-05-11 12:12:02

标签: json curl github-api gist

在使用他们的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

我可以使用完全相同的数据创建没有授权令牌的gist:

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

因此,它应具有读写权限。

1 个答案:

答案 0 :(得分:0)

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

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

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