Comment changer la charge utile d'un événement Webhook Post-Created

Bonjour.

Je souhaite personnaliser la valeur de la charge utile du webhook lorsqu’un événement de génération de sujet se produit.

Exemple…

ACTUELLEMENT

{
  "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
  }
}

À VENIR

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

Puis-je savoir comment faire ?

J’ai aussi un besoin similaire. Je suis également confus. Il n’y a pas de bonne solution pour le moment.

Hé, il n’y a pas de moyen intégré dans Discourse pour n’envoyer qu’une infime partie de la charge utile du webhook, mais voici quelques idées qui pourraient fonctionner :

  • Vous pourriez avoir un petit proxy au milieu (comme un minuscule point de terminaison Node.js ou Python) qui reçoit le webhook complet, supprime tout sauf topic_title, puis le transmet. Super flexible et ne touche pas à Discourse lui-même.

  • Ou, si vous êtes partant, un minuscule plugin Discourse pourrait écouter on(:post_created) et n’envoyer que les champs qui vous intéressent. Juste quelques lignes en Ruby et c’est réglé.

  • Une autre option paresseuse est de simplement laisser un outil comme Zapier ou n8n récupérer la charge utile complète et la mapper/filtrer avant qu’elle n’atteigne votre système final.

Rien de compliqué, juste quelques façons dont je jouerais si j’avais seulement besoin de topic_title :slightly_smiling_face: