Entonces, para enviar una solicitud POST a gists (github), puedes hacer algo como esto como se ve en 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
Pero, en el ejemplo anterior, el nombre del archivo y el contenido del mismo están codificados de manera rígida, que es la parte. file1.txt":{"content":"Demo"}
..
Estoy reemplazando la parte anterior con mi variable $file":{"content":"$content"}
pero inicialice la variable, la solicitud json debe estar entre comillas dobles, lo que hice como
curl --user "user" -X POST --data "{\"description\":\"Created via API\",\"public\":\"true\",\"files\":{\"$file\":{\"content\":\"$content\"}}' https://api.github.com/gists
Pero esto no funciona, me sale un error json.
{
"message": "Problems parsing JSON",
"documentation_url": "https://developer.github.com/v3/gists/#create-a-gist"
}
Incluso, si reemplacé todas las comillas dobles escapadas con \'
comillas simples.
¿Alguien sabe cómo incluir una variable dentro de esta solicitud json? por cierto: he utilizado todos los encabezados como
-H "Content-Type: application/json; charset=UTF-8"
y muchas combinaciones para validar la solicitud pero en vano.
ACTUALIZAR.
Así es como se ve todo el contenido.
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
}