Para ser totalmente justos con el equipo de Discourse, esto es diferente del problema de diciembre de 2020. Esa última publicación para ese problema diferente fue justo antes de la primera publicación de @dnfoz aquí, y fue de hace más de un año. El problema de @dnfoz se publicó hace solo 8 días, no hace meses. El problema es que Twitter cambia constantemente su API porque, francamente, no tienen idea de lo que buscan con su plataforma. Es por eso que un problema de hace un año será totalmente diferente de uno, digamos, de hace una semana, especialmente con Twitter. Y si este fuera un problema de hace meses, aparte de la ósmosis y la lectura de mentes, tú o alguien tendría que haberlo publicado para que lo supieran.
Parece que funciona, excepto en el registro, donde el campo de correo electrónico no se rellena automáticamente. ¿Estoy haciendo algo mal? Funciona con mi registro de Google, donde rellena el correo electrónico automáticamente.
Ver el ejemplo de @dnfoz. Se debe a que cada proveedor de SSO es diferente, lo que significa que la forma en que lo hace Google es un poco diferente a la de Twitter, y Twitter está entre los peores, si no el peor. La API de Twitter es un objetivo en movimiento porque Twitter no sabe lo que está haciendo y Twitter no muestra cortesía a los desarrolladores que construyen en torno a su API. Por lo tanto, siendo brutalmente honesto contigo, a menos que nosotros, los administradores de Discourse o el equipo de Discourse, estemos constantemente vigilando este complemento para detectar cambios en Twitter, se romperá constantemente de esta manera.
Gracias por esto. Sí, creo que no debería perder más tiempo aprendiendo y jugando con las API de Twitter que, como dices, podrían cambiar en cualquier momento. ¡Estoy seguro de que mis usuarios se las arreglarán!
Eso no quiere decir que el equipo de Discourse no esté ya trabajando en una solución, lo cual están haciendo, y puede que no requiera nada más que actualizar el plugin para que vuelva a funcionar en el lado del administrador. El problema es que este es un problema habitual con Twitter porque son una corporación mal gestionada. Mantendré mi plugin de Twitter SSO todavía como una opción, pero Twitter definitivamente no es una opción segura y confiable como cualquiera de los otros SSO.
Si todavía tenemos estos problemas, ¿podemos intentar reproducir el mismo problema en try.discourse.org? Pude iniciar sesión sin problemas con mi cuenta de Twitter allí.
Vaya, registrarse con Twitter en el foro del subdominio try que acabas de compartir pareció funcionar a la perfección. Eso me hace preguntarme si hay una colisión de complementos o alguna configuración única en marcha.
Qué extraño. Todavía estoy experimentando el comportamiento extraño en mi sitio web. Está en producción, así que no puedo cambiar demasiadas cosas, pero haré todo lo posible para intentar resolverlo. No debe ser tan único si otros usuarios también lo están informando.
Comparado con la publicación principal aquí, Twitter ha cambiado visualmente la configuración. Esto es lo que he configurado (la configuración que es segura compartir públicamente aquí en el foro de todos modos) para mi instancia de Discourse, al menos:
EDITAR: Esto podría ser algo. Si bien todavía existe la opción de solicitar correo electrónico a los usuarios, ya no existe la configuración para Habilitar autenticación de terceros, como se menciona en la publicación principal. Para las personas que habían configurado su inicio de sesión de Twitter antes de este cambio en su configuración, esto podría no ser un problema, ya que Twitter podría mantenerlos y migrar su configuración. Sin embargo, ya no veo esta opción, lo que puede suponer un problema para usuarios como yo y @dnfoz que estamos configurando nuestros foros por primera vez y Discourse necesita tener autenticación de terceros para completar con éxito el proceso de enlace SSO.
EDITAR 2: Aquí hay otra cosa para reflexionar. ¿Discourse espera la API v1 o v2 de Twitter? Para los nuevos desarrolladores, ya no ofrecen la v1, ya que solo mencionan la migración para aquellos que ya estaban usando la v1 sin mencionar el soporte heredado de la v1 para nuevos usuarios. Ver detalles aquí:
Como se describe en el enlace anterior, parecería que solo permiten que las cuentas de desarrollador preexistentes migren la v1. No veo ninguna forma ni documentación para habilitar la v2 en cuentas de desarrollador nuevas y, por lo tanto, solo tengo soporte para la v2.
Entonces, asumiendo que el SSO y la incrustación esperan la API v1 de Twitter, esto podría requerir un esfuerzo de codificación para admitir ambas versiones de la API o eliminar el soporte de la v1 si un enfoque de doble vía no es posible.
EDITAR 3: Al leer el foro de Discourse de Twitter Developers (¡oh, la ironía de que el propio Twitter use Discourse!), mis sospechas parecen estar casi confirmadas. Según su banner fijado (visible aquí: Twitter Developers (twittercommunity.com)), los nuevos desarrolladores no pueden acceder a la API v1.1:
¿Eres nuevo en la plataforma y estás listo para empezar?
Te animamos a registrarte para obtener acceso esencial y realizar tu primera solicitud a la API.
Una vez que te registres, tendrás un proyecto con acceso esencial dentro de tu cuenta, que te proporcionará lo siguiente:
- 1 entorno de aplicación
- La capacidad de recuperar hasta 500 000 tuits al mes
- La capacidad de usar hasta 5 reglas con el punto final de transmisión filtrada
- Acceso a la mayoría de los puntos finales de la API v2 de Twitter
- No podrás acceder a los puntos finales estándar v1.1, premium v1.1 o enterprise
Sí, esto es exactamente a lo que me refiero en songwritingsteps.com: rellena “user1” y sin correo electrónico.
¡Por favor, hazme saber si lo descubres! Estuve dándome cabezazos contra la pared durante horas ![]()
¡No, ni idea! Siempre puedo iniciar un foro en una VM en mi máquina local y ver si puedo averiguar qué está pasando. Sin embargo, por el momento, no hay pistas. Estoy disparando a ciegas, pero como mencioné, sospecho que el culpable es que espera soporte para la API V1. El soporte heredado V1 necesario simplemente ya no está ahí para las nuevas cuentas de desarrollador, como acabo de compartir.
¡Gracias! Gran trabajo de investigación, @Hifihedgehog. Estamos analizando el mejor camino a seguir y proporcionaremos una actualización cuando la tengamos.
Gracias por su paciencia a todos.
No creo que puedas configurar inicios de sesión sociales en una máquina local. Necesitas un certificado https válido. ¿Tienes un certificado válido para acceder a la VM en tu máquina local?
En realidad, no es muy complicado: podría configurar un túnel SSH a mi máquina local desde mi VPS y luego apuntarlo a un proxy en mi servidor web que ya tenga un certificado SSL. ![]()
Ok, creo que pudimos resolver el misterio ![]()
Como señaló @Hifihedgehog, las nuevas cuentas de desarrollador de Twitter comienzan en el plan “Esencial” y están limitadas a los puntos finales de la API v2. Nuestro inicio de sesión de Twitter integrado actualmente necesita acceder a los puntos finales v1.1. ¡Afortunadamente, eso no es un problema!
Hay dos cosas importantes a tener en cuenta en este gráfico en X API v2 - X
Puede obtener acceso a la API v1.1 de forma gratuita bajo el plan Elevado. Simplemente necesita solicitarlo desde su panel de desarrollador. Me pareció muy rápido y fácil. Los inicios de sesión de Twitter de Discourse funcionaron sin problemas después de eso ![]()
Actualizaré el OP para incluir este nuevo requisito.
¡Vaya, tienes razón! Me tomó solo un par de minutos y me aprobaron al instante. ¡Las correcciones sencillas siempre son agradables! ![]()
8 publicaciones se dividieron en un nuevo tema: Citar se rompe cuando el nombre coincide con el nombre de usuario
Si se actualiza la clave o el secreto de Twitter, ¿afecta a los usuarios existentes? Si es así, ¿hay alguna forma de “arreglarlo”? Encontré estas instrucciones para las actualizaciones del inicio de sesión de Facebook, ¿sería este el script correcto para usar?
cd /var/discourse
./launcher enter app
rails c
UserAssociatedAccount.where(provider_name: "twitter").delete_all
Mis enlaces de Twitter ya no se incrustan después de configurar el inicio de sesión de Twitter. Primero configuré las claves de consumidor de Twitter, el inicio de sesión no funcionó como se esperaba. Ahora estoy en el plan “Elevated”, por lo que debería tener acceso al endpoint v1.1.
El inicio de sesión ahora funciona como se esperaba, pero cuando reconstruyo una publicación con enlaces de Twitter, solo permanecen como enlaces simples.
Cuando reconstruyo una publicación antigua que ya tiene tweets incrustados, las incrustaciones se eliminan.
¿Alguna idea?
EDITAR: Esto parece haberse solucionado en la actualización más reciente (2.9.0.beta5 - 0ae7b43018)




