B-iggy
(B Iggy)
5 Luglio 2020, 9:16am
1
Ciao a tutti,
Ho cercato ma non sono riuscito a trovare la direzione corretta.
Voglio pubblicare automaticamente una risposta all’interno di un argomento non appena spingo un commit su un repository GitHub, tramite un webhook.
Lavoro con Integromat e ho già realizzato con successo qualcosa di simile con gli argomenti .
Ho configurato un’API in Discourse, un webhook su GitHub e uno scenario HTTP POST in Integromat, ma mi manca il pezzo finale per far funzionare tutto.
Il mio attuale tentativo è questo, ma non funziona.
Penso che sia perché Discourse non sa cosa fare con la richiesta POST.
Intendo che ci sono /new-message? e /new-topic?, ma non /new-reply?
Forse è qualcosa di banale, grazie in anticipo per il vostro aiuto!
bartv
(Bart )
5 Luglio 2020, 9:37am
2
Puoi scoprire come costruire la tua richiesta effettuando il reverse engineering dell’API di Discourse. Fondamentalmente, apri lo strumento di ispezione di rete, pubblichi una risposta a un argomento e osservi cosa succede sotto il cofano:
Discourse is backed by a complete JSON api. Anything you can do on the site you can also do using the JSON api.
The API is documented at docs.discourse.org . You can also use the discourse_api Ruby gem as a client library. However, not every endpoint is documented.
To determine how to do something with the JSON API here are some steps you can follow.
Example: recategorize a topic.
Go to a topic and start editing a category:
[image]
Open Chrome dev tools, switch to the Network tab, select …
B-iggy
(B Iggy)
5 Luglio 2020, 9:42am
3
Grazie mille @bartv
Lo sto facendo proprio ora
L’unica domanda sarebbe: sono TUTTI i campi obbligatori per effettuare una chiamata POST di risposta? È una quantità piuttosto elevata e penso che alcuni campi non possano essere compilati da me dinamicamente o siano soggetti a errori! (ad esempio l’id:)
In Zapier, ad esempio, ho creato una volta un webhook POST di argomento di successo con solo quei campi dati
bartv
(Bart )
5 Luglio 2020, 9:44am
4
Dubito che siano tutti necessari. Prova pure
B-iggy
(B Iggy)
5 Luglio 2020, 10:16am
5
Solo come informazione, non sta fallendo a causa dei campi dati, ma a causa di un CSRF errato.
Vedi qui:
API requests with the Content-Type as “application/json” often receive an unhelpful message like “BAD CSRF”, so we should improve the error messaging so that it provides more details as to why they are receiving this error message.
@blake Questo significa che devo impostare api_username e api_key nell’Header?
Il mio progresso attuale, che fallisce:
blake
(Blake Erickson)
6 Luglio 2020, 3:47pm
6
Sì, dovrai impostare Api-Username e Api-Key nell’intestazione. Assicurati di sostituire _ con -. Dovrai anche rimuovere le credenziali dal corpo.
B-iggy
(B Iggy)
6 Luglio 2020, 4:35pm
7
Fantastico, grazie mille @blake !
Era proprio quello.
Per chi, come me, ha cercato per ore su Google e con la funzione di ricerca, ecco la soluzione: