Итак, чтобы отправить POST-запрос гистам (github), вы можете сделать что-то вроде этого, как показано на https://gist.github.com/caspyi ...
curl --user "user" -X POST --data '{"description":"Created via API","public":"true","files":{"file1.txt":{"content":"Demo"}}' https://api.github.com/gists
Но в приведенном выше примере имя файла и его содержимое жестко запрограммированы, что является частью .. file1.txt":{"content":"Demo"}
..
Я заменяю вышеуказанную часть моей переменной $file":{"content":"$content"}
но инициализирую переменную, запрос json должен быть заключен в двойные кавычки, что я и сделал как
curl --user "user" -X POST --data "{\"description\":\"Created via API\",\"public\":\"true\",\"files\":{\"$file\":{\"content\":\"$content\"}}' https://api.github.com/gists
Но это не работает, я получаю ошибку JSON.
{
"message": "Problems parsing JSON",
"documentation_url": "https://developer.github.com/v3/gists/#create-a-gist"
}
Даже если я заменил все экранированные двойные кавычки на \'
одинарные кавычки.
Кто-нибудь знает, как включить переменную в этот запрос json? кстати: я использовал все заголовки, такие как
-H "Content-Type: application/json; charset=UTF-8"
и много комбинаций для подтверждения запроса, но безрезультатно
ОБНОВИТЬ.
Вот как выглядит весь контент.
function gist_controller(){
content=$(cat $1)
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
read -p "enter your password - " pass
public="false"
gist_content=$(cat $1)
curl --user "samserayo" -H "Content-Type: application/json; charset=UTF-8" -X POST -d "{ 'description': 'Created via API', 'public': 'true', 'files':{ ' '$1 ':{ 'content': '$gist_content'}}" https://api.github.com/gists
}