Добавить новый Gist с помощью API Github

Я создаю небольшое приложение в Adobe Air, которое мне нужно для взаимодействия с API Github Gist. Однако я как бы застрял.

Если вы не знакомы с Adobe Air, вы все равно можете помочь, объект XMLHttpRequest javascript может выполнять перекрестные запросы домена, так как нет домена как такового. Поэтому нет ничего особенного в Adobe Air.

Где я застрял, я думаю, мне нужно пройти аутентификацию, а затем сделать POST. Я просто не понимаю этого.

Ответ 1

Проблема с вашим script заключается в том, что, хотя вы отправляете метод POST, вы добавляете данные в URL-адрес, как если бы это был GET. Вам просто нужно изменить xmlhttp.send(NULL) на xmlhttp.send(data), где data - это данные запроса, которые вы добавляли к URL gists до (включая информацию о файле и аутентификации).

Как простой пример, здесь выдержка из a bash script, создающая новый смысл:

#!/usr/bin/env bash
if [ -z "$(git config github.token)" ]
then echo "warning: no api key found, to add follow instructions on github account page."
else echo "attempting to create a new gist using your github authentication..."; fi

SHA=$((curl https://gist.github.com/gists --include \
       --data login=$(git config github.user) \
       --data token=$(git config github.token) \
       --data action_button=private \
       --data 'file_ext[gistfile1]=txt' \
       --data 'file_contents[gistfile1]=Hello World, this is an example gist!' \
| perl -e 'for(<>){if(/^Location: https?:\/\/gist.github.com\/([0-9a-f]+)/){print $1}}')2>/dev/null)

echo "New example gist created at https://gist.github.com/$SHA"

Ответ 2

Вам не нужно аутентифицировать пользователя.

XMLHttpRequest просто должен будет иметь имя пользователя и токен API пользователей, включенный в запрос.

Посмотрите на пример ruby ​​ script, предоставленный github здесь, вам просто нужно предоставить следующие атрибуты:

  • Файл Extenstion
  • имя файла
  • Содержание
  • Если сущность является частной или нет
  • Вход пользователя
  • Пользовательский токен API

python и perl версии script