Problema al vincular el foro de Discourse con 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 Me gusta

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 Me gusta

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 me gusta

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 Me gusta

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 me gusta

Mi sitio tiene un problema similar. Instalé WP Discourse, generé una clave para todos los usuarios y el nombre de usuario de publicación es ‘system’. Aun así, veo el mensaje: ‘No estás conectado a Discourse…’. Mi sitio está proxyado por Cloudflare, pero, por lo que puedo ver, funciona correctamente. Agradecería mucho cualquier ayuda. La versión de Discourse es 2.6.0.b4.

¡Hola @sturdy2! Hay varias razones por las que podrías estar experimentando ese problema. ¿Podrías probar esta configuración por favor?

En Discourse: Crea una clave API global para un usuario administrador

La configuración debería verse así:

En WordPress: Usa esa clave y establece el “Nombre de usuario de publicación” como el usuario administrador que seleccionaste

(Tu campo “URL de Discourse” debe contener tu URL de Discourse, no lo que se muestra en la captura de pantalla)

1 me gusta

Hola @angus, gracias por la respuesta. Lamentablemente, después de crear la clave de usuario único como indicaste, sigo recibiendo el mensaje de que no hay conexión. He probado todo lo que se me ocurre, pero sin éxito… gracias de nuevo.

Ok, veamos si podemos resolverlo.

Solo para confirmar, ¿creaste una “Clave Global” (que permite todas las acciones)?

Asumiendo que sí, revisemos lo siguiente:

  1. ¿Dónde está alojado tu Discourse? ¿Y dónde está alojado tu WordPress?

  2. ¿Tienes instalados plugins personalizados de Discourse?

  3. Por favor, instala este plugin de verificación de salud en WordPress:

    • ¿Este plugin detecta algún problema crítico?

    • Habilita el modo de solución de problemas y activa solo el plugin wp-discourse (todos los demás plugins se desactivarán). Luego, intenta conectarte de nuevo.

1 me gusta

Sí, Global, un solo usuario (yo, administrador). WP Discourse no se conecta.

  1. Discourse alojado en DO
  2. No estoy seguro sobre los plugins personalizados.
    3a. Health Check & Troubleshooting (también conocido como Site Check) lleva instalado algún tiempo. Una «problema crítico» cuestionable reportado por Yoast SEO es: «Tu sitio no puede ser encontrado por los motores de búsqueda». Las instrucciones de solución de problemas adicionales indican que «si Google puede ejecutar la prueba de compatibilidad con móviles, también puede rastrear el dominio. En ese caso, la advertencia de Ryte es incorrecta». Tanto el dominio como el subdominio superan la prueba.
    3b. Lo intenté anteriormente y lo vuelvo a intentar ahora. Todos los plugins, excepto WP Discourse, están desactivados. WP Discourse no se conecta.

ACTUALIZACIÓN: He estado trabajando en esto durante varios días y hay varias cosas que no entiendo, probablemente porque casi todo esto es totalmente nuevo para mí.

  1. El registro DNS «A» para el subdominio discourse apunta a la IP asignada por DO (la misma IP que uso para SSH), pero dig discourse.example.com apunta a tres IPs diferentes asignadas aparentemente por Cloudflare, y dig https://discourse.example.com apunta a otra IP whois BAREFRUIT-ERRORHANDLING en GB. ¡Algo no encaja aquí!

  2. Supongo que WP Discourse utiliza cURL para conectarse con Discourse, por lo que he estado experimentando con cURL y la API de Discourse. Tengo tres claves de API (incluida la clave confirmada arriba). Hasta ayer, las tres indicaban «Nunca utilizada». Ayer, noté que la clave original creada en agosto pasado ahora indica que fue utilizada hace un día. Las otras dos siguen indicando «Nunca utilizada». Supongo que esto probablemente significa que una o más de mis pruebas con cURL realmente se conectaron; lamentablemente, no sé cuál funcionó realmente. También he observado que los comandos cURL que producen un código HTTP 200 no actualizan la información de «Última utilización» de la API (sigue indicando «Nunca utilizada»).

Tanto el punto #1 como el #2, mencionados anteriormente, me parecen importantes, pero aún no puedo determinar los problemas.

Me disculpo por la demora; a veces la vida se interpone. De nuevo, @angus, gracias por tu ayuda.

Ok, ¿podrías intentar eliminar Cloudflare de tu configuración? Necesitamos reducir las posibles fuentes de error.

1 me gusta

Hola @angus,
Otra actualización: he instalado el plugin Query Monitor (en WP) (ver salida, a continuación).

Usando cURL en mi computadora local, también obtengo un 403, por lo que parece ser un problema aguas arriba relacionado con mi sitio y WP Discourse. Probablemente sea Cloudflare, pero no quiero eliminar Cloudflare todavía. Ver a continuación.

Otra disculpa por mi lentitud. He recibido un aviso de mi servicio de alojamiento informático indicando que mi sitio se está migrando a otro servidor y habrá algunos cambios, incluido un cambio de dirección IP. Por lo tanto, necesito posponer el trabajo adicional sobre este problema. ¿Podría volver a recurrir a usted cuando las cosas se calmen?

EDITAR: ¡Resuelto! Quizás sea un error en /admin/site_settings/category/security → user agents de rastreadores permitidos.
Parece que cualquier entrada en el campo de texto para UA permitidos provoca el bloqueo de todos, incluso un comando curl desde mi computadora local. Al restablecer el texto a vacío, inmediatamente WP Discourse muestra: “¡Estás conectado a Discourse!

3 Me gusta

¡Me alegra que lo hayas resuelto! :tada:

Sí, creo que esa configuración está pensada para ser bastante restrictiva (de ahí la advertencia en MAYÚSCULAS en las instrucciones).

Para permitir que tu instancia de WordPress pase mientras usas allowed crawler user agents, puedes agregarla de la siguiente manera:

Wordpress/<wordpress_version>

Acabo de probarlo en mi WordPress / Discourse de prueba agregando Wordpress/5.5.3 a allowed crawler user agents y funcionó :+1:

Si no quieres tener que actualizarlo cada vez que actualices tu WordPress, puedes usar un plugin sencillo para establecer tu propio agente de usuario para este tipo de solicitudes en WordPress, por ejemplo:

2 Me gusta

Gracias por la explicación. Esto empieza a tener más sentido para mí. Inicialmente pensé que “agentes de usuario de rastreadores permitidos” servía para identificar los rastreadores de motores de búsqueda autorizados. Primero ingresé “Googlebot”, sin entender que WP Discourse utilizaba un agente de usuario de WordPress y, por ello, fue bloqueado. Solo otro error de principiante. Creo que este es un malentendido común, pero no encontré nada en la documentación limitada ni en los ejemplos aún más escasos.

Como “agentes de usuario de rastreadores permitidos”, ahora estoy usando: WordPress (no se necesita la versión), Googlebot y Discourse (agregado para su uso con cURL como se muestra a continuación). ¿Ves algún problema? ¿O necesito agregar otros?

Parece algo similar con cURL usando la API de Discourse. Antes recibía un error 403 hasta que agregué el agente de usuario como se muestra a continuación.

Primer ejemplo publicado en la documentación de la API de Discourse (no funciona para mí):
curl -X GET "http://127.0.0.1:3000/admin/users/list/active.json" \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: system"
Esto funciona para mí después de agregar la opción de agente de usuario.
curl -A Discourse -X GET "http://discourse.example/admin/users/list/active.json" \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: system"

En mi opinión, los ejemplos no deberían publicarse a menos que estén completos y funcionen… ¡argh!

@angus, muchas gracias por tu ayuda y asistencia.

1 me gusta

Hola,

El único plugin de membresía que sé que funciona tanto con WordPress como con Discourse es Memberful. También tienen instrucciones detalladas sobre cómo integrarse con Discourse aquí – Integrate Discourse with Memberful - Memberful

Si ya estás utilizando otro plugin de membresía, podría valer la pena contactarlos y preguntarles directamente. Lo he utilizado en mi portafolio de sitios web para clientes.

2 Me gusta