Ich habe das WP Discourse-Plugin installiert, und alles scheint gut zu funktionieren, außer dem Webhook „Sync Comment Data". Er wird ständig mit „Failed" und dem Statuscode 400 zurückgemeldet.
Dies ist die Antwort:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Ihr Browser hat eine Anfrage gesendet, die dieser Server nicht verstehen konnte.<br />
</p>
</body></html>
Die payload URL scheint korrekt zu sein.
Der Webhook Secret Key ist sowohl in Discourse als auch im WP-Plugin hinterlegt.
Der Content Type ist application/json.
Post Event ist aktiviert.
Check TLS certificate of payload url ist aktiviert.
Überprüfen Sie noch einmal, ob die Payload-URL und der Webhook-Geheimschlüssel korrekt eingestellt sind.
Wenn das das Problem nicht löst, können Sie mir bitte mitteilen, welche Permalink-Struktur Ihre WordPress-Site verwendet? Die Permalink-Struktur finden Sie im Abschnitt Einstellungen / Permalinks Ihres WordPress-Dashboards.
Wissen Sie, ob Sie die WordPress REST API auf Ihrer Website deaktiviert haben? Wenn ja, würde dies dazu führen, dass die von Discourse gesendeten Webhook-Anfragen fehlschlagen.
Eine der beworbenen Funktionen des Ithemes Security-Plugins ist die Möglichkeit, den Zugriff auf die Rest-API zu blockieren. Es lohnt sich, zu überprüfen, ob dies die Ursache des Problems ist.
Sie müssen das Sync Comment Data-Webhook nicht mit dem WP Discourse-Plugin verwenden. Der Hauptvorteil der Nutzung besteht darin, dass Kommentare sofort nach ihrer Veröffentlichung auf Discourse angezeigt werden, anstatt bis zu 10 Minuten warten zu müssen, um neue Kommentare abzurufen. Auf sehr stark frequentierten Seiten kann das Webhook die Anzahl der API-Anfragen reduzieren, die Ihre Seite an Discourse sendet. Dies betrifft hauptsächlich Seiten, die auf einer Post-Indexseite die Anzahl der Kommentare anzeigen.
Ja, es funktioniert, aber ich wollte die Webhooks implementieren, um die Verzögerung zu vermeiden. Ich habe mit unserem Entwickler gesprochen, und er sagte, dass es vor und nach der Installation des Sicherheits-Plugins keine REST-API-Blockade gibt. Ich bin ratlos.
Der von dir oben gepostete Screenshot ist ein guter Hinweis darauf, dass die Payload-URL korrekt ist. Der von dir erhaltene Antwortcode 400 zeigt an, dass der WordPress-Server die Anfrage ablehnt. Hätte das Problem mit einem falschen geheimen Schlüssel zu tun, würdest du einen Antwortcode 500 erhalten.
Wenn du Zugriff auf die Zugriffsprotokolldatei deiner WordPress-Site hast, wird dort wahrscheinlich genau angezeigt, worin das Problem besteht.