Come caricare un'immagine usando l'API Discourse

Ciao a tutti,

Sto cercando di caricare un’immagine utilizzando la seguente API di Discourse tramite codice JAVA:
https://discourse.example.com/uploads.json
passando un JSON nel corpo della richiesta:
{
“type” : “avatar”,
“user_id”: 1,
“synchronous”: true,
“file”: “Stringa binaria”
}

Tuttavia, nella risposta ricevo il seguente risultato:

{
“failed”: “FAILED”,
“message”: “metodo `tempfile’ non definito per #String:0x000055fc2e0a01d8
}

Dove sto sbagliando?
Aiutatemi, per favore.

Sto riscontrando lo stesso problema. @Saurabh_Khandelwal, se riesci a trovare una soluzione, rispondimi per favore.

Il parametro per file deve essere chiamato files[]. Consulta questa risposta per un esempio con Postman:

Questi sono i miei dati di esempio
Array
(
[type] => avatar
[user_id] => 3
[synchronous] => 1
[file] => 1101000 1110100 1110100 1110000 1110011 111010 101111 101111 1101011 1101001 1111000 101101 1100100 1100101 1110110 101110 1100001 1110011 1110011 1111001 1110011 1110100 101101 1110101 1100011 101110 1100011 1101111 1101101 101111 1110011 1101001 1110100 1100101 1110011 101111 1100100 1100101 1100110 1100001 1110101 1101100 1110100 101111 1100110 1101001 1101100 1100101 1110011 101111 1110000 1101001 1100011 1110100 1110101 1110010 1100101 1110011 101111 110010 110000 110010 110000 101101 110000 110111 101111 1101011 1101001 1111000 1110100 1100101 1100001 1101101 1011111 1101001 1101101 1100111 110001 101110 1101010 1110000 1100111
)

Invio del file come stringa binaria. Ricezione della risposta come mostrato di seguito. Questo è Drupal

/uploads.jsonha restituito una risposta422 Unprocessable Entity: {"failed":"FAILED","message":"metodo tempfile` non definito per #\u003cArray:0x00007f0d5c784810\u003e"}

Sto tentando l’integrazione tra Drupal e Discourse.

Sei riuscito a farlo funzionare? Ho provato tutte le combinazioni possibili con Node.js, ma non riesco a farlo funzionare.

Ricevo un errore 422 Unprocessable Entity.

Nella documentazione di Discourse, viene indicato che il content-type della richiesta è application/json.

In questo post, l’esempio di Postman utilizza form-data, e quando osservo il composer nell’interfaccia web di Discourse, viene utilizzato un post multi-part.

Qualcuno sa come farlo tramite l’API senza utilizzare il client Ruby?

Questo ancora non sembra funzionare.

Questo è l’errore che ricevo quando tento di caricare un’immagine, in binario.

Unprocessable Entity - {\"failed\":\"FAILED\",\"message\":\"undefined method `tempfile' for an instance of String\"}