¡Me encantaría invitarte a mi instancia! No sé si tu plugin registra algo en algún lugar; si te ayuda, puedo enviarte esos registros.
EDITA: Cuando autorizaste al bot, ¿qué permisos le asignaste allí?
¡Me encantaría invitarte a mi instancia! No sé si tu plugin registra algo en algún lugar; si te ayuda, puedo enviarte esos registros.
EDITA: Cuando autorizaste al bot, ¿qué permisos le asignaste allí?
El bot necesita permisos de Administrador:
Debes conceder los permisos a través del navegador como se describe aquí (y en la publicación original):
algo como: https://discord.com/api/oauth2/authorize?client_id=YOURCLIENTID&scope=bot&permissions=8
Tu problema casi con seguridad está en el lado de Discord, ya que el servidor del bot de Discourse parece estar funcionando (lo has demostrado con el comando Ping!), por lo que los registros de Discourse no serán relevantes.
Acabo de volver a probar este plugin en la última versión de Discourse y todo funciona correctamente (actualicé un par de gems a una versión más moderna para garantizar la compatibilidad con otros plugins, pero esto no tiene relación con tu problema).
Sí, así que lo he vuelto a invitar un par de veces sin ningún cambio. Es un administrador, tiene el alcance de bot. Soy yo quien lo invita a Discord, soy el propietario del servidor de Discord. Simplemente no me reconoce y devuelve: “¡No tienes permiso para ejecutar el comando discsync!”
¡Estoy desconcertado, lamentablemente!
¡Hurra! Parece que logré malformar el ID del grupo de administrador de alguna manera. ¡Parece que mi trabajo de copiar y pegar puede haber omitido un número…
Como pregunta de seguimiento, ahora estoy intentando asignar colores a las personas en Discord según su nivel de confianza en Discourse. Para que los niveles de confianza se copien, creo que el comando debería ser:
!discsync false, 0, true
¿Es esto correcto? Para mí devuelve lo siguiente:
EDITO: Se devuelve lo mismo si ejecuto el comando sin comas, es decir:
!discsync false 0 true
Aumenta tu nivel de visibilidad. Los grupos automatizados estándar tienen de forma predeterminada la visibilidad 1 (“Usuarios conectados”), por lo que si este valor es cero, excluyes los grupos automatizados predeterminados:
El valor cero solo incluirá los grupos visibles para todos, incluidos los usuarios anónimos.
Eso es, ya estoy listo. Muchas gracias, lo aprecio mucho.
¿Puedo ayudar a cambio escribiendo algo de lo que he aprendido en tu guía? Si no es posible, no hay problema; solo quiero devolver tu apoyo.
Eso es muy amable. Estaría encantado de que lo editaras. ¿Deberías poder hacerlo ya? Es un wiki.
También me ayudaste a refrescar mi memoria ![]()
No necesito realmente la sincronización de roles, pero sería genial tener un bot de Discord que publique en canales específicos del servidor cuando se creen nuevos temas en el foro. ¿Hay algún plugin que pueda hacer eso?
Sí, probablemente este plugin no sea la herramienta adecuada para eso. El bot está impulsado por tu Discourse y puede acceder a tus datos de Discourse (cuando se permite y se solicita mediante un comando), pero se ejecuta en un hilo separado, por lo que no recibirá señales de los eventos de Discourse.
Supongo que podría ser viable ampliarlo en algún momento, por ejemplo, para vigilar la creación de nuevos temas en una categoría específica. No es el mejor uso de esta arquitectura, pero se aceptan PRs.
Parece que necesitas investigar lo siguiente:
O
Sí, investigué ambas opciones. La primera, Zapier, no es gratuita. Puedes crear hasta 5 Zaps gratuitos y estos son de un solo paso. Esto es exactamente lo que se dijo en ese hilo, por lo que la alternativa propuesta fue la integración discourse-chat-integration, que supuestamente es un plugin oficial. Creo que esta es la forma más cercana de hacer lo que quiero.
La última opción parece ser un plugin de feed RSS:
Actualización: Después de aprender a configurar correctamente las reglas y los webhooks, la integración de chat hace exactamente lo que quería. ¡Gracias!
¡Hola @merefield,
¡gracias de nuevo por contactarnos con este plugin!
He instalado todo tal como se describe en la documentación. Uso este comando: !discsync y todo parece estar bien para mí. ![]()
Sin embargo, para algunos usuarios (no para todos), obtengo este error para todos sus grupos:
Discourse Sync: [11/31] Agregando al miembro 'MaxMustermann' al grupo 'Member'
Discourse Sync: ¡Parece que no tengo los permisos para hacer esto!
ERROR en el servidor XYZ (ID: 123123123123) para el comando ^add_role, método 'add_role' no definido para nil:NilClass
Otros usuarios sí pueden sincronizarse para el mismo grupo ![]()
Eso sugiere que tu provider_uid en Discourse no está configurado para ese usuario. Por favor, investiga.
Por cierto, buen trabajo configurando esto. ¡Es bastante complejo y no es para los débiles de corazón! :).
Ejecuté esta consulta en el plugin Knowledge Explorer:
SELECT *
FROM user_associated_accounts u
WHERE u.provider_name = 'discord'
No puedo publicar el resultado por razones
, pero verifiqué el provider_uid de cada usuario y todos tienen uno. ¿Hay algo más que pueda depurar?
Entonces, el siguiente problema más probable es que el UID de Discord mapeado actualmente sea incorrecto.
Es decir, los datos en Discourse no se están mapeando a un UID válido en Discord.
Verifica manualmente el registro de este usuario en Discord y confirma que sea correcto.
Hola, puedo confirmar esto. El usuario tiene otro UID en Discourse que en Discord.
¿Cómo se puede reproducir este problema?
¿Podrías eliminar la asociación y pedirle al usuario que la vuelva a crear asociando Discord nuevamente? Si vuelve a ocurrir, ¿hay algún error en el inicio de sesión social?
Hola,
Solo quería hacer un seguimiento. Hablé con las personas que tuvieron estos problemas y pudimos identificar el posible inconveniente.
El usuario se registró con su antigua cuenta de Discord, pero no se unió al servidor con ella. Por lo tanto, el bot de sincronización no pudo encontrar al usuario de Discord, supongo, y ocurrió un error.
Gracias por aclararlo. ¿Puedes confirmar cómo lo resolviste? ¿Eliminaste su asociación y luego lo hiciste volver a asociar?
Eso es lo que hicimos. ![]()