J’ai installé le plugin WP Discourse et tout semble fonctionner correctement, sauf le webhook « Sync Comment Data ». Il renvoie systématiquement un échec avec un « Status Code: 400 ». Voici la réponse : <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> </p> </body></html> * L’URL de la charge utile (payload URL) semble correcte. * La clé secrète du webhook (Webhook Secret Key) est configurée à la fois dans Discourse et dans le plugin WP. * Le type de contenu (Content Type) est application/json. * L’option Post Event est cochée. * L’option Check TLS certificate of payload url est cochée. * L’option Active est cochée. Toute suggestion serait grandement appréciée.
Vérifiez à nouveau que l’URL de la charge utile et la clé secrète du webhook sont correctement configurées.
Si cela ne résout pas le problème, pouvez-vous m’indiquer quelle structure de permalien votre site WordPress utilise ? La structure de permalien se trouve dans la section Réglages / Permaliens de votre tableau de bord WordPress.
L’URL du payload et la clé secrète du webhook sont correctement configurées.
La structure des permaliens est « Nom de l’article ».
Je me demandais simplement s’il y avait d’autres réflexions à ce sujet…
Savez-vous si vous avez désactivé l’API REST de WordPress sur votre site ? Si c’est le cas, cela entraînerait l’échec des requêtes de webhook envoyées depuis Discourse.
Semble être activé, mais je vais examiner cela plus en détail.
C’est normal. La route sur Discourse vers laquelle le webhook envoie ses données n’accepte que les requêtes POST.
Le ping devrait donc fonctionner ?
Oui, le ping devrait fonctionner.
Quelle est la forme de l’URL que vous ajoutez au champ « URL de charge utile » du webhook sur Discourse ? Vous pouvez omettre la partie domaine de l’URL. L’URL fournie dans la description de l’option « Synchroniser les données des commentaires » sur WordPress devrait être correcte (elle est générée en fonction de la structure de permalien utilisée par votre site), mais il est possible qu’elle ne convienne pas dans votre cas.
https://my.url.net/wp-json/wp-discourse/v1/update-topic-content
Copiez et collez depuis le plugin WP Discourse. Section « Synchroniser les données des commentaires » dans l’onglet Webhooks.
L’URL de charge utile semble correcte. Avez-vous des plugins liés à la sécurité sur votre site WordPress qui pourraient bloquer la requête ?
Nous le faisons maintenant, mais nous ne le faisions pas lorsque j’ai rencontré le problème à l’origine.
Le plugin est Solid Security Pro - SolidWP
L’une des fonctionnalités annoncées du plugin Ithemes Security est qu’il peut être utilisé pour bloquer l’accès à l’API REST. Il serait utile de vérifier que cela n’est pas la cause du problème.
Vous n’avez pas besoin d’utiliser le webhook Sync Comment Data avec le plugin WP Discourse. L’avantage principal de son utilisation est qu’il permet aux commentaires d’apparaître immédiatement après leur publication sur Discourse, sans avoir à attendre jusqu’à 10 minutes pour récupérer les nouveaux commentaires. Sur les sites très fréquentés, le webhook peut réduire le nombre de requêtes API que votre site effectue vers Discourse. Cela concerne principalement les sites qui affichent le nombre de commentaires sur une page d’index des articles.
Oui, cela fonctionne, mais je souhaitais mettre en place les webhooks pour éviter le délai. J’ai consulté notre développeur, et il m’a confirmé qu’il n’y avait aucune restriction de l’API REST avant ni après l’installation du plugin de sécurité. Je suis perplexe.
Y a-t-il un moyen de confirmer l’URL de la charge utile autre que sur la page webhook du plugin Discourse ?
La capture d’écran que vous avez publiée ci-dessus indique bien que l’URL du payload est correcte. Le code de réponse 400 que vous recevez signifie que le serveur WordPress rejette la requête. Si le problème provenait d’une clé secrète incorrecte, vous obtiendriez un code de réponse 500.
Si vous avez accès au fichier de journal d’accès de votre site WordPress, il vous indiquerait probablement exactement quel est le problème.
Connaissez-vous le fichier de journal d’accès exact de WP que je devrais consulter ? Je ne trouve rien d’utile.


