Anfragen an die Discourse-API können automatisiert werden, indem ein Zap erstellt wird, der einen Zapier-Webhook als Aktionsschritt verwendet. Dieses Thema beschreibt, wie Anfragen für folgende Aktionen ausgeführt werden:
- Benutzer zur Gruppe hinzufügen
- Eine benutzerdefinierte Auszeichnung vergeben
Um herauszufinden, wie andere Arten von API-Anfragen mit Zapier ausgeführt werden, lesen Sie dieses Thema durch und suchen Sie dann in der Discourse-API-Dokumentation nach der gewünschten Aktion. Sie können auch herausfinden, wie eine API-Anfrage für eine bestimmte Aktion erstellt wird, indem Sie Reverse engineer the Discourse API lesen.
Den Trigger-Schritt einrichten
Jedes Zap muss einen Trigger und einen Aktionsschritt haben. Der Trigger wird verwendet, um Daten von einer Anwendung an den Aktionsschritt des Zaps zu übergeben. In einigen Fällen kann der Trigger auch verwendet werden, um zu verhindern, dass ein Zap seinen Aktionsschritt ausführt, es sei denn, die Daten erfüllen bestimmte Bedingungen.
Um Ihren Aktionsschritt einzurichten, gehen Sie zu Ihrem Zapier-Dashboard und klicken Sie auf die Schaltfläche „Zap erstellen". Ein Suchformular öffnet sich und fragt Sie, eine Trigger-App auszuwählen.
Für die Beispiele in diesem Thema verwende ich das WordPress-Ereignis „Neuer Benutzer" als Aktionsschritt. Dies liegt daran, dass es einfach einzurichten ist, um die API-Aufrufe zu testen.
Der Knoten „Diesen Schritt testen" Ihres Trigger-Schritts ermöglicht es Ihnen, eine Stichprobe von Daten aus Ihrer Trigger-Anwendung auszuwählen, die an den Aktionsschritt Ihres Zaps übergeben wird. Diese Daten sind nützlich für die Einrichtung des Aktionsschritts.
Optionalen Schritt zum Abrufen von Details aus Discourse hinzufügen
Je nachdem, welche Daten von Ihrer Trigger-App übergeben werden, müssen Sie möglicherweise einige Daten aus Discourse abrufen, bevor Sie Ihre endgültige API-Anfrage stellen können. Beispielsweise übergibt der WordPress-Trigger „Neuer Benutzer" den WordPress-Benutzernamen und die E-Mail-Adresse des Benutzers. Ich weiß, dass die E-Mail-Adresse mit der E-Mail-Adresse des Discourse-Benutzers übereinstimmt, aber für die API-Anfragen in diesem Beispiel muss ich den Discourse-Benutzernamen des Benutzers kennen.
Um die Discourse-Details eines Benutzers anhand seiner E-Mail-Adresse abzurufen, fügen Sie einen Aktionsschritt zu Ihrem Zap hinzu. Wählen Sie im Aktionsmenü des Webhooks „GET" aus.
Geben Sie auf dem Schritt „Vorlage bearbeiten" des Webhooks die Basis-URL Ihrer Discourse-Site gefolgt von /admin/users/list/all.json in den URL-Bereich ein. Zum Beispiel ist die Basis-URL meiner Site https://demo.scossar.com, also gebe ich https://demo.scossar.com/admin/users/list/all.json in das URL-Feld ein.
Geben Sie im Bereich „Abfragezeichenfolgen-Parameter" „email" als Schlüssel ein und klicken Sie dann auf das Symbol „Feld einfügen", um das Dropdown-Menü zu öffnen. Wählen Sie den Wert aus, der von Ihrem Trigger-Schritt übergeben wurde und die E-Mail-Adresse des Benutzers enthält.
Die Anfrage authentifizieren
Scrollen Sie im Formular nach unten zum Bereich „Header". Dieser Bereich wird verwendet, um die Anfrage zu authentifizieren. Er erfordert drei Schlüssel-Wert-Paare:
Api-Username: Der Benutzername eines Administrators auf Ihrer Site. In den meisten Fällen ist der Benutzer „system" eine gute Wahl dafür.Api-Key: Der API-Schlüssel, der mit dem Benutzernamen verknüpft ist, den Sie im ersten Schlüssel-Wert-Paar verwendet haben.Content-Type:multipart/form-data
Der ausgefüllte Header-Bereich sollte ähnlich wie dieser aussehen, jedoch mit dem API-Schlüssel Ihres Benutzers:
Klicken Sie auf die Schaltfläche „Weiter", um die Daten anzuzeigen, die für diese Anfrage aus Discourse abgerufen wurden.
Den endgültigen Aktionsschritt hinzufügen
Sobald Ihr Trigger und der optionale Schritt zum Abrufen von Daten aus Discourse konfiguriert sind, klicken Sie auf den Link „Schritt hinzufügen" und wählen Sie im Aktionsmenü „Webhooks by Zapier" aus. Ihnen wird dann aufgefordert, die Anfrage-Methode auszuwählen, die Sie in Ihrer API-Anfrage an Discourse verwenden möchten.
Hier sind die für die in diesem Thema verwendeten Beispiele erforderlichen Anfragearten:
- Benutzer zur Gruppe hinzufügen:
PUT - Benutzerdefinierte Auszeichnung vergeben:
POST
Um andere API-Anfragen als die Beispiele in diesem Thema zu konfigurieren, werfen Sie einen Blick auf die Discourse-API-Dokumentation, um zu sehen, ob ein Beispiel für die gewünschte Anfrage vorhanden ist. Wenn Sie dort kein Beispiel finden, lesen Sie Wie man die Discourse-API reverse-engineert, um zu erfahren, wie Sie die URL und die Anfrage-Methode für die gewünschte Aktion finden. Sobald Sie die Anfrage-Methode gefunden haben, wählen Sie sie im Aktionsmenü aus.
Hinweis: Wenn Ihre Anfrage die DELETE-Methode verwendet, wählen Sie im Aktionsmenü „Benutzerdefinierte Anfrage" aus.
Den endgültigen Aktionsschritt konfigurieren
Der Header-Bereich der Aktion kann für alle API-Anfragen auf die gleiche Weise konfiguriert werden. Weitere Details finden Sie im Abschnitt „Die Anfrage authentifizieren" dieses Themas. Wenn Sie den optionalen Schritt zum Abrufen von Details aus Discourse hinzugefügt haben, können Sie den Header-Bereich des endgültigen Aktionsschritts genau so konfigurieren wie bei diesem Schritt.
Sobald die Header-Schlüssel-Wert-Paare hinzugefügt wurden, müssen Sie die URL- und Datenfelder des Formulars für Ihre API-Anfrage ausfüllen.
Benutzer zur Gruppe hinzufügen
Um einen Benutzer zu einer Gruppe hinzuzufügen, wird eine PUT-Anfrage an /groups/<group_id>/members.json gestellt. Der einfachste Weg, die ID einer Gruppe zu finden, besteht darin, die Seite der Gruppe über die Discourse-Benutzeroberfläche aufzurufen und dann .json in die URL in der Adressleiste Ihres Browsers einzugeben. Zum Beispiel hat meine Site eine „Support"-Gruppe unter https://demo.scossar.com/g/support. Wenn ich zu https://demo.scossar.com/g/support.json gehe, kann ich sehen, dass die Gruppen-ID 41 ist. Die Basis-URL meines Forums ist https://demo.scossar.com. Die URL in meinem endgültigen Aktionsschritt zum Hinzufügen von Benutzern zu einer Gruppe wird auf https://demo.scossar.com/groups/41/members.json gesetzt.
Die Anfrage zum Hinzufügen von Benutzern zu einer Gruppe erfordert einen Parameter – eine durch Kommas getrennte Liste von Benutzernamen. Geben Sie im Datenbereich des Formulars „usernames" als Schlüssel ein. Klicken Sie dann auf das Symbol „Feld einfügen", um nach der Benutzereigenschaft zu suchen, die entweder vom Trigger oder vom optionalen GET-Aktionsschritt übergeben wurde.
In meinem Fall möchte ich den Benutzernamen, der vom GET-Schritt abgerufen wurde, also erweitere ich das Menü „GET" und wähle „Username" aus dem Dropdown-Menü aus.
Alle anderen Bereiche des Formulars können bei ihren Standardwerten belassen werden.
Klicken Sie auf die Schaltfläche „Weiter" und testen Sie dann Ihren Schritt. Wenn der Benutzer, den Sie durch die vorherigen Schritte übergeben haben, auf Ihrer Discourse-Site existiert und noch kein Mitglied der ausgewählten Gruppe ist, sollte er beim Testen des Schritts zur Gruppe hinzugefügt werden.
Wenn alles wie erwartet funktioniert, schalten Sie Ihr Zap ein.
Eine benutzerdefinierte Auszeichnung vergeben
Um einem Benutzer eine benutzerdefinierte Auszeichnung zu vergeben, wird eine POST-Anfrage an die Basis-URL Ihres Forums + /user_badges gestellt. Für meine Site lautet die URL zum Vergeben von Auszeichnungen https://demo.scossar.com/user_badges. Das ausgefüllte URL-Feld in Zapier sieht so aus:
Der Datenbereich des Formulars erfordert zwei Schlüssel-Wert-Paare. Fügen Sie einen Schlüssel „username" hinzu und setzen Sie ihn auf das Feld, das den Benutzernamen des Benutzers zurückgibt. Fügen Sie einen Schlüssel „badge_id" hinzu und setzen Sie ihn auf die ID der Auszeichnung, die Sie vergeben möchten. Sie können die Auszeichnungs-ID finden, indem Sie zur Seite „Admin / Auszeichnungen" gehen und die Auszeichnung im linken Menü auswählen. Sie sehen die Auszeichnungs-ID als letzten Wert der URL in der Adressleiste Ihres Browsers.
Die Auszeichnung, die ich vergabe, hat die ID 105, daher sieht mein ausgefüllter Datenbereich so aus:
Stellen Sie sicher, dass Sie den Header-Bereich des Formulars konfiguriert haben, und klicken Sie dann auf „Weiter". Klicken Sie dann auf die Schaltfläche „Test senden", um Ihr Zap zu testen. Der Benutzer, den Sie durch die vorherigen Schritte übergeben haben, sollte die Auszeichnung erhalten.
Wenn alles korrekt funktioniert, schalten Sie das Zap ein.












