Implementierung von Webhooks für das Calendar-Plugin

Hallo!

Ich wollte wissen, ob Sie an der Implementierung einiger Webhooks für das Kalender-Plugin interessiert sind.

Ich kann daran arbeiten, wenn die Community der Meinung ist, dass dies eine gute Ergänzung für das Plugin wäre…

Das gesagt, es wird Zeit in Anspruch nehmen, da ich keine richtige Dokumentation zur Implementierung von Webhooks in einem Plugin finden kann und einige Recherchen durchführen muss :slight_smile:

5 „Gefällt mir“

Haben Sie interessante Anwendungsfälle? Welche Operationen würden Sie implementieren? Erstellen/Aktualisieren/Löschen/Ereignisregistrierung/Ereignisabmeldung?

Ja, das sind die Events, die ich vorerst erstellen möchte, wobei der Anwendungsfall darin besteht, eine externe Event-Management-Plattform auszulösen.

Die nächste Frage wird sein, Hooks von der Remote-Plattform akzeptieren zu können, aber ich werde dafür möglicherweise ein separates Plugin erstellen, da dies nicht generisch sein kann (meine erste Vermutung), es sei denn, wir implementieren die Unterstützung für das iCal-Format (aber selbst dann sehe ich bereits viele Einschränkungen).

1 „Gefällt mir“

Ich habe ein offizielles Plugin mit Webhook-Erweiterungen gefunden: GitHub - discourse/discourse-solved: Allow accepted answers on topics.

Ich kann also mit der Implementierung beginnen, wenn es keine Einwände gibt :slight_smile:

Ich habe mir den Code angesehen und festgestellt, dass es nicht so einfach ist, wie es sein sollte, neue Webhooks hinzuzufügen.

  • Webhooks sind Teil einer Gruppe von Webhooks (ich vermute, es ist für den Admin und/oder zur Benennung von Ereignissen)
  • Für das Solved-Plugin gibt es 2 Webhooks: solved_accepted_solution und solved_unaccepted_solution, in der Gruppe solved

Wo es schiefgeht, ist:

  • die Gruppe solved ist im WebHookEventType-Modell von Discourse fest codiert
  • die beiden Ereignisse sind ebenfalls im WebHookEventType-Modell von Discourse fest codiert

Ich werde sehen, ob und wie ich es schaffe, neue Ereignisse zu deklarieren, ohne den Discourse-Code anfassen zu müssen…

1 „Gefällt mir“