Problème de liaison du forum Discourse à WP Discourse

Hello,

I’m working on a wordpress site and have the WP Discourse plugin installed. Our objective is obviously to sync our wordpress site with the Discourse forum so that when a post is published to the site it is also published to Discourse.

However until now it didn’t work much. While creating a post, even with the “Create new Topic” Discourse box checked, it does not work and the post isn’t created in the forum.

I went to the WP Discourse plugin settings and to me everything seemed to be fine (everything isn’t obviously fine and I may have done something wrong as it doesn’t work), the Discourse API key is correct as well as the SSO secret key, as I’m also trying to use my wordpress site as an SSO provider.

I noticed in the WP Discourse plugin settings that there were two error messages, when accessing the “SSO Provider” and “Connection” tabs:


which is quite problematic because there IS an admin user with this email address on the forum (myself).
and most importantly, “You are not connected to Discourse. If you are setting up the plugin, this notice should go away after completing the form on this page.”

Soooo my wordpress and Discourse don’t seem to be synced. Can I please get some help in order to solve this ? Feel free to ask if you need more information - I guess you obviously do

The first thing to sort out is the issue on the Connections tab. The plugin won’t work until you establish a connection with Discourse.

What have you set for the Publishing Username on that tab? It should be set to either the Discourse username of the system user (‘system’ by default) or the username of an admin user from your forum.

What version of WordPress are you using?

3 « J'aime »

Hello Simon, thanks for the answer.

So it seems really dumb, but as expected the Publishing Username wasn’t correct (I missed a space on the name). I fixed this and now I have the “You are connected to Discourse!” message.

Also no more error message on the SSO Provider tab. By the way I’m using WordPress 4.9.3.

Anyway, sorry for the inconvenience and thanks again for the answer. I’ll update this thread/create another one if I have any other issue especially with synchronizing the creation of posts between Wordpress and the forum.

3 « J'aime »

Hi,

Although I put all the needed info to Connection tab but it still shows

You are not connected to Discourse. If you are setting up the plugin, this notice should go away after completing the form on this page.

Please help.

Discourse: https://forum.biohack.vn
WP: https://biohack.vn
I use admin as the username since it’s the Discourse admin.

Try using ‘system’ for the username.

1 « J'aime »

Already before I switch to admin.

For the Publishing Username setting, you need to use the username of your Discourse System user. That username defaults to ‘system’ (without the quotes.) For the API Key, use the All Users API Key. You can find that key at /admin/api/keys.

When I try to visit your site at http://biohackplus.com/, the page isn’t loading for me. Are you able to access it at that URL?

Let’s not open more than one topic on the same exact thing please.

2 « J'aime »

I was able to connect to Discourse. However, although I put all the needed info Publishing tab, when I create a post in Wordpress, it doesn’t show in Discourse.

What I’m trying to do: When I create a post in a category in Wordpress, the plugin will create a post in Discourse with link to my Wordpress post in a matched Discourse Category.

This topic has instructions for publishing posts to Discourse: WP Discourse now supports the WordPress Block Editor. Is this working for you?

1 « J'aime »

Mon site rencontre un problème similaire. J’ai installé WP Discourse, créé une clé pour tous les utilisateurs et le nom d’utilisateur de publication est « system ». Pourtant, je vois toujours le message « Vous n’êtes pas connecté à Discourse… ». Mon site est proxyé par Cloudflare, mais cela semble fonctionner correctement. Toute aide serait grandement appréciée. Discourse est en version 2.6.0.b4.

Salut @sturdy2, il y a plusieurs raisons pour lesquelles tu pourrais rencontrer ce problème. Pourrais-tu essayer cette configuration pour moi ?

Dans Discourse : Crée une clé API globale pour un utilisateur administrateur

La configuration devrait ressembler à ceci

Dans WordPress : Utilise cette clé et définis le « Nom d’utilisateur de publication » comme l’utilisateur administrateur que tu as sélectionné

(le champ « URL de Discourse » doit contenir l’URL de ton instance Discourse, et non ce qui est affiché dans la capture d’écran)

1 « J'aime »

Bonjour @angus, merci pour votre réponse. Malheureusement, après avoir créé la clé utilisateur unique comme vous l’avez indiqué, je reçois toujours le message « aucune connexion ». J’ai essayé tout ce qui m’est venu à l’esprit, mais sans succès… Merci encore.

D’accord, voyons si nous pouvons résoudre le problème.

Pour confirmer, avez-vous créé une « Clé globale » (autorise toutes les actions) ?

En supposant que oui, vérifions les points suivants :

  1. Où votre Discourse est-il hébergé ? Où votre WordPress est-il hébergé ?

  2. Avez-vous installé des plugins Discourse personnalisés ?

  3. Veuillez installer ce plugin de vérification de santé sur WordPress :

    • Ce plugin détecte-t-il des problèmes critiques ?

    • Activez le mode de dépannage et activez uniquement le plugin wp-discourse (tous les autres plugins seront désactivés). Ensuite, essayez de vous connecter à nouveau.

1 « J'aime »

Oui, globale, utilisateur unique (moi-même, administrateur). WP Discourse ne se connecte pas.

  1. Discourse hébergé par DO
  2. Je ne suis pas sûr des plugins personnalisés.
    3a. Health Check & Troubleshooting (aussi appelé Site Check) est installé depuis un certain temps. Un « problème critique » douteux signalé par Yoast SEO est : « Votre site ne peut pas être trouvé par les moteurs de recherche. » Les instructions de dépannage supplémentaires indiquent que « si Google peut exécuter le test Mobile-Friendly, Google peut également crawler le domaine. Dans ce cas, l’avertissement Ryte est erroné. » Le domaine et le sous-domaine passent tous deux le test.
    3b. J’ai essayé cela précédemment et une nouvelle fois. Tous les plugins sauf WP Discourse sont désactivés. WP Discourse ne se connecte pas.

MISE À JOUR : J’ai joué avec cela pendant plusieurs jours et il y a plusieurs choses que je ne comprends pas, probablement parce que presque tout cela est totalement nouveau pour moi.

  1. L’enregistrement DNS « A » pour le sous-domaine discourse pointe vers l’IP assignée par DO (la même IP que j’utilise pour SSH), mais dig discourse.example.com pointe vers trois IP différentes apparemment assignées par Cloudflare et dig https://discourse.example.com pointe vers une autre IP whois BAREFRUIT-ERRORHANDLING au GB. Quelque chose ne tourne pas rond ici !

  2. Je suppose que WP Discourse utilise cURL pour se connecter à Discourse, alors j’ai expérimenté avec cURL et l’API Discourse. J’ai trois clés API (y compris la clé confirmée ci-dessus). Jusqu’à hier, les trois indiquaient « Jamais utilisé ». Hier, j’ai remarqué que la clé originale créée en août dernier indique maintenant qu’elle a été utilisée il y a un jour ! Les deux autres indiquent toujours « Jamais utilisé ». Je suppose que cela signifie probablement que l’une ou plusieurs de mes expériences cURL ont effectivement réussi à se connecter ; malheureusement, je ne sais pas laquelle a fonctionné. J’ai également noté que les commandes cURL qui produisent un http 200 ne modifient pas les informations « Dernière utilisation » de l’API (reste « Jamais utilisé »).

Les points #1 et #2 ci-dessus me semblent importants, mais je ne peux pas encore déterminer les problèmes.

Je m’excuse pour le retard ; parfois la vie interfère. Encore merci, @angus, pour votre aide.

D’accord, pourriez-vous essayer de retirer Cloudflare de votre configuration ? Nous devons identifier les sources potentielles d’erreur.

1 « J'aime »

Bonjour @angus,

Une nouvelle mise à jour : j’ai installé le plugin Query Monitor (dans WP) (voir la sortie ci-dessous).

En utilisant cURL depuis mon ordinateur local, j’obtiens également un 403. Il me semble donc qu’il s’agit d’un problème en amont lié à mon site et à WP Discourse. Probablement Cloudflare, mais je ne souhaite pas encore désactiver Cloudflare. Voir ci-dessous.

Encore une fois, désolé pour mon retard. J’ai reçu un avis de mon service d’hébergement indiquant que mon site est en cours de migration vers un autre serveur, ce qui entraînera certains changements, notamment un changement d’adresse IP. Je dois donc reporter les travaux supplémentaires sur ce problème. Puis-je vous solliciter à nouveau une fois la situation stabilisée ?

EDIT : Résolu ! Peut-être un bug dans /admin/site_settings/category/security → user agents de crawler autorisés.
Il semble que toute entrée dans le champ de texte des UA autorisés provoque un blocage de tout, même une commande cURL depuis mon ordinateur local. Réinitialiser le texte à vide entraîne immédiatement le message de WP Discourse : " Vous êtes connecté à Discourse !"

3 « J'aime »

Content-Type: text/plain; charset=utf-8

Content-Transfer-Encoding: 8bit

Glad you figured it out! :tada:

Oui, je pense que ce paramètre est conçu pour être assez restrictif (d’où l’avertissement en MAJUSCULES dans les instructions).

Pour autoriser votre instance WordPress tout en utilisant allowed crawler user agents, vous pouvez l’ajouter comme suit :

Wordpress/<wordpress_version>

Je viens de tester cela sur mon test WordPress / Discourse en ajoutant Wordpress/5.5.3 à allowed crawler user agents et cela a fonctionné :+1:

Si vous ne souhaitez pas mettre à jour cela à chaque fois que vous mettez à jour votre WordPress, vous pouvez utiliser un simple plugin pour définir votre propre agent utilisateur pour ce type de requêtes dans WordPress, par exemple :

2 « J'aime »

Merci pour l’explication. Cela commence à avoir plus de sens pour moi. Au départ, je pensais que « allowed crawler user agents » servait à identifier les robots d’indexation des moteurs de recherche autorisés. J’avais initialement saisi « Googlebot », sans comprendre que WP Discourse utilisait un agent utilisateur WordPress et que cela entraînait un blocage. Encore une erreur de débutant. Je pense que c’est un malentendu courant, mais je n’ai rien trouvé dans la documentation limitée et les exemples encore plus rares.

En tant que « allowed crawler user agents », j’utilise désormais WordPress (la version n’est pas nécessaire), Googlebot et Discourse (ajouté pour une utilisation avec cURL comme ci-dessous). Voyez-vous un problème ? Ou dois-je en ajouter d’autres ?

Cela semble similaire avec cURL utilisant l’API Discourse. J’avais précédemment reçu une erreur 403 jusqu’à ce que j’ajoute l’agent utilisateur comme ci-dessous.

Premier exemple publié dans la documentation de l'API Discourse (ne fonctionne pas pour moi) :
curl -X GET "http://127.0.0.1:3000/admin/users/list/active.json" \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: system"
Cela fonctionne pour moi après avoir ajouté l'option d'agent utilisateur.
curl -A Discourse -X GET "http://discourse.example/admin/users/list/active.json" \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: system"

À mon avis, les exemples ne devraient pas être publiés s’ils ne sont pas complets et fonctionnels… aargh.

@angus, un grand merci pour votre aide et votre assistance.

1 « J'aime »

Bonjour,

Le seul plugin d’adhésion que je connais et qui fonctionne à la fois avec WordPress et Discourse est Memberful. Ils proposent également des instructions détaillées sur la façon de s’intégrer à Discourse ici – Integrate Discourse with Memberful - Memberful

Si vous utilisez déjà un autre plugin d’adhésion, il pourrait être utile de les contacter directement. Je l’ai utilisé dans mon portfolio de sites web clients.

2 « J'aime »