Создайте новую сущность с помощью Github API v3, используя curl

После довольно долгой борьбы за публикацию частной информации на Github с использованием их API V3 я почти сдался. Почти. Может быть, кто-то также сталкивался с подобной проблемой или знает, в чем может быть причина следующего поведения:

Прямо сейчас команда 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

Таким образом, он должен иметь права на чтение и запись.


person Max    schedule 11.05.2012    source источник
comment
Используя токен авторизации человека, это сработало для меня без проблем.   -  person Heavy Gray    schedule 26.05.2014


Ответы (1)


Ваш токен OAuth2 не имеет необходимой области действия gist.

Если вы запустите команды curl с аргументом -v, вы увидите область, отправленную для запроса (заголовок X-OAuth-Scopes), и область, необходимую для успешного выполнения запроса (заголовок X-Accepted-OAuth-Scopes) с использованием отправленного токена.

Если вы не видите gist в значении заголовка X-OAuth-Scopes, то это ваша проблема.

person Kevin Sawicki    schedule 12.05.2012
comment
В этом случае, как я упоминал ранее, вы опубликуете суть как Аноним. Это не так. - person Max; 14.05.2012
comment
Что вы видите для значений заголовков, которые я упомянул, когда вы запускаете команду 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 содержимое файла}}}' api.github.com/gists с аргументом -v curl? - person Kevin Sawicki; 14.05.2012
comment
В качестве альтернативы вы можете проверить curl -u "username:password" https://api.github.com/authorizations, если он есть в массиве областей видимости. - person varesa; 18.07.2012