Incrustación Nativa de Twitter

Por cierto, no sé qué tan ocupado está tu foro ni con qué frecuencia se publican las “onebox” de X/Twitter, pero el plan gratuito básico de Twitter sí funciona para las “onebox” predeterminadas; simplemente limita la velocidad a aproximadamente 1 solicitud de “onebox” cada 15 minutos. Lo tengo funcionando en un foro relativamente activo y solo parece limitar cuando la gente intenta publicar más de un enlace de “onebox” en una publicación.

3 Me gusta

Desafortunadamente, acabo de descubrir que esto impide que se incrusten muchos enlaces de YouTube (es decir, https://youtu.be/) porque los enlaces redirigen a YouTube.

La gente publica muchos más enlaces de YouTube de los que publica publicaciones de X. Así que lo he deshabilitado por ahora y simplemente editaré x.com → twitter.com por ahora.

2 Me gusta

Muy rara vez se mencionan publicaciones de x/twitter. Y las previsualizaciones de Twitter.com funcionan, pero las de X.com no.

¿Estás seguro? No me refiero a este componente, me refiero al onebox nativo que usa un token de API de plan gratuito de desarrollador de twitter y con este componente deshabilitado. Dices que estás alojado, deberían poder configurar el oneboxing predeterminado como el que existe aquí en Meta.

Tengo la inserción enriquecida de X/Twitter gratis en 2 sitios autoalojados diferentes. Uso este componente cuando la API de X/Twitter deja de funcionar por la razón que sea y simplemente lo activo y desactivo según sea necesario en ese momento.

5 Me gusta

Configuré una cuenta de desarrollador gratuita para X. Me pregunto cómo se obtiene un one box de Twitter para incrustar.

Tengo el componente de incrustación nativa de Twitter funcionando bien, pero quiero publicar en modo oscuro.

Parece que en algunas versiones recientes de Discourse, deshabilitar los oneboxes de Twitter/X no funciona bien.
Además, este componente de tema no funciona correctamente en los oneboxes ya existentes.

He añadido una funcionalidad que, además de reemplazar los enlaces sin formato por una incrustación nativa, también busca los oneboxes de Twitter y luego hace lo mismo.

Eso significa que ya no es necesario deshabilitar el oneboxing ni reconstruir publicaciones antiguas.

PR aquí Feature: support existing oneboxes by communiteq · Pull Request #1 · Lhcfl/discourse-twitter-native-embed · GitHub

3 Me gusta

¡Gracias! Perdona la espera de un mes. Estaba hospitalizado en cama, y ahora que he dado de alta, veo este PR. ¡Aprobado!

5 Me gusta

Hola a todos… ¿alguien está teniendo problemas con este plugin? Parece que algo se rompió y ya no muestra incrustaciones, ni con x.com ni con twitter.com. ¿Se lanzó una nueva versión de Discourse que lo haya roto?

1 me gusta

Confirmo que esto sigue roto a fecha de hoy (26 de septiembre de 2026).

En mi instancia, el componente ahora lanza activamente un error en lugar de fallar en silencio: Discourse muestra la barra de aviso exclusiva para administradores:

:warning: Es posible que las publicaciones no se estén renderizando correctamente porque uno de los decoradores de publicaciones de tu sitio lanzó un error. Causado por “Twitter/X Einbindung” [incrustación de Twitter/X].

Esto ocurre repetidamente y está activando advertencias similares al Modo Seguro en todo el sitio, no solo una incrustación faltante. Versión de Discourse: 2026.10.0.

¿Alguien ha encontrado una solución o un workaround además de deshabilitar el componente por completo?

Pasaré a usar incrustaciones de Nitter después de resolver algunos problemas de ipv6 con mi proveedor y me daré de baja por completo de Twitter.

1 me gusta

Desde que Musk restringió drásticamente el acceso a la API debido al spam constante de bots, todas las formas de acceso externo a la plataforma han sufrido las consecuencias.

Puedo comprender las decisiones empresariales y de seguridad, pero no la falta de opciones oficiales para la integración externa.

Conozco Nitter, pero no es tan práctico como copiar y pegar los enlaces originales de X.

Podría tener sentido que el propio equipo del proyecto Discourse se acercara a X Corp y ofreciera un plugin oficial.

De lo contrario, sinceramente no veo un futuro para la interoperabilidad aquí. Y X es, sin duda, la plataforma de noticias más importante del mundo occidental

Ten en cuenta que Nitter recibió una carta de cesación y desistimiento el mes pasado y es posible que no dure mucho más: X sends cease-and-desist to open source project Nitter over alleged scraping | TechCrunch

2 Me gusta

Parece legítimo. Borraron toneladas de sus datos sin ninguna explicación ni posibilidad de recuperación; los intereses que hay detrás son realmente oscuros.

El proyecto de la comunidad al que hice referencia está más vivo que nunca. Codeberg, impulsado por la comunidad.

Hasta que X cambie algo y Zed ya no esté allí para hacer el verdadero trabajo duro de raspado.

Bueno, la resistencia resiste hasta que es posible resistirse. Autistic (Inventati) trabajó por la humanidad durante décadas hasta que ya no fue posible continuar.

Creo que Nitter se mantendrá al menos un año sin más problemas. Solo hacen empuje a servicios masivos, y el autoalojamiento no tiene ese impacto.

1 me gusta

Hice un pequeño fork de este componente que corrige el error de modo seguro (un nulo no protegido por un atributo ausente) y un par de problemas menores: GitHub - terraboss/discourse-x-native-embed: X embedding · GitHub — hasta ahora funciona bien, agradezco cualquier comentario.

1 me gusta

este componente no está roto y funciona como se espera en mi sitio.

3 Me gusta

Actualización: primer hito de mi fork

Gracias por los comentarios. Mi fork ha logrado mantener alejado el banner de modo seguro hasta ahora. Mi mejor suposición sobre la causa sigue siendo un atributo data-onebox-src ausente, pero no está confirmado, así que por favor trátalo como experimental.

Desde entonces he añadido algunas cosas, algunas de las cuales se pidieron anteriormente en este hilo:

  • el enlace plano sobre un tweet desaparece una vez que el tweet se ha cargado (se mantiene si no se puede alcanzar X)
  • menos saltos mientras se cargan los tweets, y sin incrustaciones duplicadas
  • modo oscuro para las incrustaciones
  • los enlaces de X sin formato que Discourse no incrustó también se incrustan
  • citar una publicación con un enlace de X ya no reemplaza tu cita con el tweet

Todo el crédito por la idea original corresponde a @Lhc_fl. El fork se construyó con cierta ayuda de IA de Claude. Me gustaría saber cómo funciona para los demás.

El desplazamiento salta al hacer scroll hacia arriba en temas largos

Al desplazarse hacia arriba en un tema largo, la página salta repetidamente hacia abajo un poco una vez que se reconstruyen publicaciones antiguas fuera de la pantalla (presumiblemente relacionado con el ocultamiento de publicaciones). Es lo suficientemente disruptivo como para que sea difícil leer un hilo largo desde abajo hacia arriba.

Primero sospeché de un componente del tema (incrustaciones nativas de X/Twitter que se redimensionan después de recargar), pero el salto parece ocurrir independientemente de eso también. Desplazarse hacia abajo no muestra el mismo problema, solo hacia arriba.

Versión de Discourse: La última y la mejor. ¿Alguien más ha encontrado esto, o es un problema conocido?

¿Quizás una alternativa sería añadir una palabra de reemplazo global, sustituyendo https://x.com por https://fixupx.com?

3 Me gusta

¡Gracias por la sugerencia! Me temo que un reemplazo de ese tipo no encaja con este proyecto. El punto clave de este componente es incrustar tweets directamente desde X/Twitter. Un proxy de terceros como fixupx no resuelve los problemas subyacentes, solo añade otra capa intermedia: un servicio más que puede fallar o cambiar, y una parte más que ve las solicitudes. Además, reescribiría los enlaces guardados en las propias publicaciones.

Lo que realmente preferiría es una copia local de los tweets. Eso ayudaría con los tiempos de carga y la caché, haría que las incrustaciones fueran resistentes a las caídas del servicio y mantendría un archivo del contenido. Pero requeriría acceso de pago a la API y una aclaración sobre la responsabilidad de derechos de autor y contenido, y no puedo ofrecer ninguno de los dos. Así que, por ahora, el componente se limita a las incrustaciones directas.

Si alguien solo necesita vistas previas de enlaces simples y no le importa usar un proxy, un reemplazo de palabras vigiladas puede funcionar para eso, pero ese es un objetivo diferente al de este componente.