Come modificare il payload di un evento Webhook Post-Created

Ciao.

Voglio personalizzare il valore del payload del webhook quando si verifica un evento per la generazione di argomenti.

Esempio…

COM’È

{
  "post": {
    "id": 19,
    "name": "user",
    "username": "user",
    "avatar_template": "/letter_avatar_proxy/v2/letter/u/c0e974/{size}.png",
    "created_at": "2018-07-20T06:24:33.205Z",
    "cooked": "<p>Cool, now i have you, haha</p>",
    "post_number": 6,
    "post_type": 1,
    "updated_at": "2018-07-20T06:24:33.205Z",
    "reply_count": 0,
    "reply_to_post_number": null,
    "quote_count": 0,
    "avg_time": null,
    "incoming_link_count": 0,
    "reads": 0,
    "score": 0,
    "topic_id": 11,
    "topic_slug": "this-is-new-topic",
    "topic_title": "This is new topic",
    "display_username": "user",
    "primary_group_name": null,
    "version": 1,
    "user_title": null,
    "moderator": false,
    "admin": true,
    "staff": true,
    "user_id": 1,
    "hidden": false,
    "trust_level": 1,
    "deleted_at": null,
    "user_deleted": false,
    "edit_reason": null,
    "wiki": false,
    "topic_posts_count": 6
  }
}

DA ESSERE

{
   "topic_title": "This is new topic"
}

Posso sapere come fare?

Ho anche esigenze simili. Sono anch’io confuso. Al momento non c’è una buona soluzione.

Ehi, non c’è un modo integrato in Discourse per inviare solo una piccola parte del payload del webhook, ma ecco un paio di idee che potrebbero funzionare:

- Potresti avere un piccolo proxy nel mezzo (come un minuscolo endpoint Node.js o Python) che riceve il webhook completo, rimuove tutto tranne topic_title, quindi lo inoltra. Super flessibile e non tocca Discourse stesso.

- Oppure, se sei disposto, un piccolo plugin di Discourse potrebbe ascoltare on(:post_created) e inviare solo i campi che ti interessano. Bastano poche righe in Ruby e hai finito.

- Un’altra opzione pigra è lasciare che uno strumento come Zapier o n8n catturi il payload completo e lo mappi/filtri prima che raggiunga il tuo sistema finale.

Niente di speciale, solo alcuni modi in cui giocherei se avessi bisogno solo di topic_title :slightly_smiling_face: