Incrustación Nativa de Twitter

No habilitamos la incrustación en la vista previa del compositor, que es el comportamiento esperado.

:information_source: Resumen
:hammer_and_wrench: Repositorio
:question: Guía de instalación
:open_book: ¿Nuevo en los temas de Discourse?

Instalar este componente de tema

Una limitación reciente de la API de Twitter ha impedido que se muestren algunas de las previsualizaciones de enlaces de Discourse. Este componente de tema permite a Discourse admitir incrustaciones nativas de Twitter sin necesidad de las API de Twitter.

El componente de tema solicita un script de Twitter de platform.twitter.com, por lo que si Twitter quisiera, podría rastrearte en este script y causar problemas de privacidad. Debes sopesar si confiar en esta plataforma social que se está volviendo cada vez más ridícula.

Para usar este componente, debes agregar el enlace de Twitter al rango de permisos de la política de seguridad del sitio en la configuración del sitio y agregar twitter.com y x.com a los dominios de previsualización bloqueados.

https://platform.twitter.com/

37 Me gusta

¿Tienes que reconstruir después de hacer esto? He instalado y añadido al contenido de seguridad, pero todavía no hay incrustaciones, solo el enlace.

1 me gusta

Por supuesto que no. Por favor, envíame un enlace a tu sitio y veré por qué este componente funciona bien en mi foro.

5 Me gusta

Gracias, lo he resuelto. Después de eliminar la clave y el secreto del consumidor de Twitter de la configuración, ahora funciona como se esperaba. Creo que estaba intentando incrustar usando la API por defecto porque no los había eliminado. Gracias de nuevo por hacer esto, sería genial si algo así fuera posible también para Instagram.

6 Me gusta

Bien hecho. Gracias por este componente temático. Gran trabajo oportuno. :slightly_smiling_face:

3 Me gusta

¡Vaya, gracias por esto!

Funciona como se anuncia para mí, pero quizás no está tan claro que en la vista previa solo se ve la URL del tweet como un hipervínculo, la incrustación ocurre cuando se envía la respuesta o la publicación.

2 Me gusta

El nuestro está ocurriendo en orden inverso… la vista previa muestra la incrustación y luego no la muestra cuando se publica.

1 me gusta

Buen trabajo y buena idea.

Trabajé en un pequeño fork para usar el modo oscuro data-theme para la incrustación. Funciona bien, pero no soy un programador experto.

Si logras agregar una opción para usar el tema predeterminado o el tema oscuro, ¡creo que será aún mejor!

9 Me gusta

Ya hemos realizado todas las modificaciones recomendadas anteriormente. Nuestro problema ahora es solo al intentar publicar desde un dispositivo móvil… incrustar un Tweet usando una laptop/computadora de escritorio funciona bien ahora.

2 Me gusta

A algunas personas les gustan los incrustados y no necesitan la funcionalidad de “inicio de sesión”, por lo que este componente será muy popular y sí, también veo solicitudes para otras plataformas.

Personalmente, me gusta más el estilo de incrustación de Twitter de aspecto natural que el Onebox; si los incrustados de las plataformas más populares conservan el aspecto nativo, los diferencian bien en el flujo de un tema. Verdaderamente un gran trabajo y no puedo evitar pensar por qué no tuvimos esto antes para evitar todas las complejidades de la configuración de la cuenta de desarrollador, pero ahí lo tienes, las necesidades obligan y los valientes y audaces aceptan el desafío.

¡Muchísimas gracias!

1 me gusta

En otro punto sobre la fragilidad de los embeds como contenido, tras observar el tema de la implosión de Twitter, me hizo pensar de nuevo en una vieja idea que tenía.

Si los embeds pudieran generar un mapa de bits de respaldo de la vista previa del embed como parte de la función de embed, eso protegería contra los resultados de Photobucket y similares.

No tengo idea de cómo se podría codificar, pero imagino que funcionaría en principio de manera similar a la función que captura la imagen de un enlace de imagen publicado y se almacena en la base de datos nativa, mientras que supongo que es más fácil ya que es un archivo ya existente en algún servidor, actuaría como, supongo, lo mismo que una función de captura de pantalla personalizada sobre la marcha, que ocurre cuando un embed se confirma en una publicación de Discourse.

Los sitios que archivan un nivel de su contenido es útil, ya que la red envejece, las cosas desaparecen de vez en cuando.

También voy a sugerir otra característica en esta línea aquí

1 me gusta

Gracias.

1 me gusta

Esto es importante y se acaba de descubrir, al juntar 2 y 2: si no tenías CSP habilitado antes y usas, por ejemplo, Google Adsense, anularás tus anuncios al activar CSP si usas cifrado (DM) para que el componente de Twitter funcione, ¡ya que hay un posible conflicto!

Me gustaría que me demostraran que estoy equivocado con una súper solución o “lo hiciste mal”

2 Me gusta

Presumiendo que la integración de Twitter (oneboxing) a través de la API ahora requiere una suscripción de pago a Twitter, ¿este método podría/debería añadirse al núcleo de Discourse? Las grandes comunidades empresariales pueden permitirse las tarifas de Elon, pero están fuera del alcance de las organizaciones sin fines de lucro y las comunidades pequeñas.

¿Esta idea cuenta con el apoyo de @team?

La erosión de Twitter es un caso difícil de manejar. Sigue siendo la fuente número 1 para la mayoría de las noticias y eventos, utilizada por medios de comunicación, corporaciones y personas de interés. A pesar de la sacudida de Elon, no hay un competidor o alternativa creíble para la plataforma.

2 Me gusta

Lamentablemente, este componente no funciona en mi instancia de Discourse. Eliminamos las claves de inicio de sesión de Twitter, pero todavía nada. También habilitamos CSP.

2 Me gusta

Hola ljpp,

Perder los rich embeds ciertamente no es deseable, y lo estamos discutiendo para ver qué se puede hacer al respecto. :slight_smile:

Cuando pegas un enlace de Twitter en el compositor, ¿qué devuelve la pestaña de red de las herramientas de desarrollador de tu navegador?
¿Hay errores en la consola de javascript?

3 Me gusta

Lo estamos pensando, pero hay dos problemas muy grandes que deben abordarse aquí:

  1. IFRAME significa que permitimos que Twitter rastree a los usuarios. Existen preocupaciones de privacidad.
  2. IFRAME significa que necesitamos luchar contra la guerra de la altura “desconocida”. Si no tenemos altura y solo la obtenemos después de hablar con Twitter, la página salta mucho, lo que puede afectar en gran medida la experiencia de Discourse. Determinar la altura con anticipación es muy difícil.
6 Me gusta

Absolutamente. Esta solución alternativa del componente temático carga JavaScript desde los servidores de Twitter y, considerando cómo le está yendo a Twitter en general, esto supone un riesgo masivo para la privacidad. Por lo tanto, soy reacio a aplicar este componente temático, al menos por ahora.

Caso complicado, sin duda.

5 Me gusta

No estoy muy seguro de qué mirar, pero aquí están los resultados después de pegar el enlace en el editor:


y en la vista previa estoy recibiendo este mensaje:


Este es el tuit:

2 Me gusta

Actualización:

Ahora los embeds funcionan, pero la vista previa del compositor todavía muestra el mensaje “Lo sentimos, no podemos generar…”. Cuando se publica, todo se ve bien.

2 Me gusta