A partir del 24 de octubre, Facebook dejará de apoyar los archivos incrustados no autentificados de WordPress. Por lo tanto, si estás incrustando contenido de Facebook e Instagram en tu sitio de WordPress, se romperá.

Más específicamente, los antiguos puntos finales de Facebook oEmbed están siendo reemplazados por nuevos que requieren autenticación a través de Facebook. Como Facebook es dueño de Instagram, los mismos requisitos se aplican a los puntos finales de Instagram oEmbed también.

En este artículo, cubriremos cómo WordPress utiliza los puntos finales de Facebook e Instagram oEmbed, qué se está actualizando, y cómo puedes arreglar las cosas para que tus incrustaciones sigan funcionando como deben.

¡Preparémonos!

¿Cómo WordPress utiliza oEmbed para incrustar contenido?

oEmbed es un protocolo que permite a los sitios incrustar contenido de otros sitios de terceros con sólo un URL. Está diseñado principalmente para evitar la necesidad de copiar-pegar HTML de otros sitios. WordPress usa oEmbed para mostrar contenido incrustado (como fotos o videos).

Todo lo que necesitas hacer es colocar la URL del recurso en el área de contenido, y WordPress lo convertirá automáticamente en un incrustado y mostrará una vista previa en vivo del mismo.

Incrustar contenido con sólo una URL en WordPress
Incrustar contenido con sólo una URL en WordPress

En el ejemplo anterior, pegué un enlace de vídeo de YouTube y WordPress lo convirtió automáticamente en un vídeo incrustado. El protocolo oEmbed es la columna vertebral de WordPress para incrustar muchos tipos de contenido como videos, imágenes, actualizaciones y más de varias plataformas de medios sociales.

Aunque WordPress permite incrustar iframes saneados de cualquier proveedor de oEmbed registrado, no los incrusta todos por defecto por razones de seguridad. Sólo incrusta de forma predeterminada las URL de ciertos proveedores de oEmbed sancionados.

La lista de los proveedores de confianza de oEmbed de WordPress incluye la mayoría de los sitios populares de alojamiento de contenidos y redes sociales como Imgur, Facebook, Instagram, Tumblr, YouTube, Vimeo, y muchos más. Estos proveedores pueden incrustar cualquier contenido, como videos, iframes, JavaScript, e incluso HTML al azar.

Facebook e Instagram oEmbed puntos finales (Legacy)

Los puntos finales de Facebook e Instagram oEmbed son la columna vertebral para integrar el contenido de Facebook e Instagram en los sitios de WordPress.

Un ejemplo de cómo WordPress incorpora el contenido de Facebook
Un ejemplo de ¿cómo WordPress incorpora el contenido de Facebook?

Los puntos finales de Facebook oEmbed permiten a WordPress no sólo introducir el contenido principal, sino también metadatos como el nombre y el logotipo de la página, la fecha y la hora, la imagen en miniatura, el número de gustos, los comentarios y las acciones, y la dirección URL de la fuente.

Un ejemplo de cómo WordPress incorpora el contenido de Instagram
Un ejemplo de ¿cómo WordPress incorpora el contenido de Instagram?

Lo mismo ocurre con la incorporación de contenido de Instagram. Se puede ver no sólo la imagen en la incrustación, sino también la información de metadatos importantes relacionados con ella.

Los nuevos puntos finales de Facebook e Instagram «oEmbed»

Facebook anunció recientemente que desaprobará sus actuales puntos finales de oEmbed a partir del 24 de octubre de 2020. Están llamando a estos viejos puntos finales ahora como puntos finales Legacy oEmbed.

Para el 24 de octubre de 2020, los desarrolladores deben aprovechar un token de usuario, aplicación o cliente al consultar Graph API para las imágenes de perfil de usuario a través de UID, FB OEmbeds e IG OEmbeds. Los desarrolladores deben proporcionar un token de usuario o de aplicación cuando consulten imágenes de perfil a través de un UID o ASID, aunque también se admiten tokens de cliente. Por favor, visite nuestro registro de cambios para Imagen de Usuario, OEmbed de Facebook y OEmbed de Instagram para obtener detalles sobre cómo empezar a llamar a estos puntos finales de Graph API hoy mismo.
– Facebook para desarrolladores

Lo que necesitas ahora para aprovechar la API de Facebook oEmbed

Yendo en contra de la naturaleza de la API web abierta oEmbed, la nueva API de Facebook oEmbed tiene varios requisitos:

  • Necesitas tener una cuenta de Facebook para desarrolladores.
  • Entonces necesitas tener una aplicación de Facebook registrada para generar un ID de aplicación único.
  • A continuación, debes habilitar el producto oEmbed para tu aplicación registrada.
  • Luego debes generar un token de acceso a la aplicación o un token de acceso al cliente.
  • Por último, debes poner la aplicación de Facebook en modo Live.

En respuesta a estos nuevos requisitos, WordPress está eliminando Facebook e Instagram como fuentes confiables de oEmbed.

Esperamos que la próxima gran actualización de WordPress incluya estos cambios. Si estás usando el plugin de Gutenberg, la última versión de Gutenberg 9.0 ya ha eliminado el soporte para ellos.

¿Qué pasa con los viejos Facebook e Instagram Incrustaciones?

WordPress almacena en caché las respuestas de oEmbed en su base de datos bajo el tipo post meta o el tipo post oembed_cache oculto (actualmente sólo se utiliza en los widgets).

Como WordPress no purga estos valores por defecto, el contenido de los incrustados seguirá existiendo en el sitio web.

Pero serán purgados si los borras manualmente de la base de datos. Por lo tanto, cualquier incrustación en Facebook o Instagram que hayas añadido antes de la fecha límite del 24 de octubre persistirá incluso después de la fecha de depreciación.

¿Cómo integrar el contenido de Facebook e Instagram después del 24 de octubre?

Si intentas incrustar contenido de Facebook o Instagram después de que desaprueben los puntos finales oEmbed heredados, tú y tus usuarios pueden recibir errores HTTP 400 como respuesta.

Para ayudarnos a probar cómo los nuevos intentos de incrustación se mostrarán después de la fecha límite, Facebook ha añadido un parámetro para los puntos finales oEmbed heredados para simular el error. Lo probé y los resultados están abajo.

Un embed simulado usando los puntos finales del oEmbed de Facebook.
Un embed simulado usando los puntos finales del oEmbed de Facebook.

Los incrustados de Facebook aparecerán como pequeños extractos (máximo 120 caracteres) dentro de las comillas. También incluirá enlaces al autor y a la fuente original, pero nada más allá de eso.

Ni siquiera una referencia a Facebook, excepto por los enlaces, haciendo clic que te llevará a Facebook.

Un empotramiento simulado usando los puntos finales del legado Instagram oEmbed
Un embed simulado usando los puntos finales de legacy Instagram oEmbed

En comparación, las incrustaciones de Instagram son mucho mejores con la estructura incrustada bastante intacta.

Dicho esto, es un asunto temporal. Una vez que WordPress elimine los puntos finales de Facebook e Instagram oEmbed de su núcleo, el legado de los puntos finales oEmbed dejará de ser un problema.

La única manera de incrustar el contenido de Facebook e Instagram será entonces cumplir con los requisitos de Facebook. Aprenderás cómo hacer exactamente eso en la siguiente sección.

¿Cómo arreglar el tema de Facebook e Instagram oEmbed en WordPress?

La forma más fácil de restaurar los incrustados de Facebook e Instagram en WordPress es usar el plugin gratuito oEmbed Plus de Ayesh Karunaratne. Te ayuda a implementar los nuevos puntos finales de oEmbed de Facebook para volver a habilitar las incrustaciones de Facebook e Instagram en el editor de bloques.

El plugin oEmbed Plus WordPress
El plugin oEmbed Plus WordPress

Para empezar, primero instala y activa el plugin.

Nota: oEmbed Plus requiere PHP 7.3 o versiones superiores para funcionar. Si tu actual host de WordPress no soporta aún las versiones PHP 7.3+, te recomendamos encarecidamente que busques un nuevo host.

A continuación, crea una cuenta de Facebook para desarrolladores, si no tienes una ya. Luego, crea una aplicación. En mi caso, llamaré a mi aplicación «Sitio de WordPress», pero puedes ponerle el nombre que prefieras.

Crear una aplicación en el portal de Facebook para desarrolladores
Crear una aplicación en el portal de Facebook para desarrolladores

La creación de una aplicación generará automáticamente un ID de aplicación.

Puedes ver tanto tu App ID como el App Secret en el panel de Configuración → Basic bajo el panel de control de la aplicación. Anota estos dos valores ya que los necesitarás más adelante.

Facebook para desarrolladores 'App ID' y 'App Secret'
Facebook para desarrolladores ‘App ID’ y ‘App Secret’

Mientras estés aquí, configura también la URL de la política de privacidad, ya que es necesaria para que la aplicación funcione. Se recomienda utilizar una política de privacidad adecuada para que tu aplicación no se incluya en una lista negra.

El producto oEmbed se activa automáticamente por defecto, así que puedes dejarlo como está.

A continuación, ve a la pantalla de Configuración → Escritura en tu panel de control de WordPress y busca la sección de configuración de Facebook e Instagram Embed. Aquí, introduce el App ID y los valores de App Secret que anotaste anteriormente.

Configuración de los ajustes del plugin oEmbed Plus
Configuración de los ajustes del plugin oEmbed Plus

Alternativamente, puedes añadir el App ID y el App Secret a tu archivo wp-config.php. Aquí está el fragmento de código que necesitas usar:

define('OEMBED_PLUS_FACEBOOK_APP_ID', '7168...app.id...789');  
define('OEMBED_PLUS_FACEBOOK_SECRET', '20e5...app.secret...890xyz');

¡No te olvides de cambiar los valores mostrados arriba por los tuyos! Una vez hecho, guarda el archivo.

Si editas el archivo wp-config.php para configurar oEmbed Plus, automáticamente deshabilitará los campos App ID y App Secret en tu panel de control de WordPress. De esta manera, puedes mantener tus credenciales de App en secreto de otros usuarios.

¡Eso es más o menos así!

Todas las nuevas incrustaciones de Facebook e Instagram utilizarán ahora la nueva API de autenticación para incrustar contenido en tu sitio de WordPress.

Otros plugins de medios sociales dedicados, como Instagram Feed y Social Post Feed, también están agregando soporte para los nuevos endpoints de Facebook oEmbed. Sin embargo, estos plugins vienen con muchas características, por lo que pueden ser una hinchazón innecesaria para tu sitio para este caso de uso específico. Sin embargo, si ya los estás usando, entonces puedes revisarlos.

Facebook es generoso con los límites de las tarifas de su nueva API, por ahora. Te permiten hacer hasta 5 millones de solicitudes por día. Como WordPress almacena en caché las respuestas de la API de oEmbed en la base de datos, un embed no disparará más peticiones más allá de la primera. Puedes consultar la documentación actualizada de oEmbed en Facebook para más información.

Resumen

WordPress es el CMS más popular en uso hoy en día. Asimismo, Facebook e Instagram son las plataformas de medios sociales más populares. Por lo tanto, este cambio afecta potencialmente a millones de sitios.

Incrustar contenido de medios sociales en WordPress ofrece una experiencia más única a los visitantes de tu sitio. A partir del 24 de octubre de 2020, muchos usuarios ignorantes encontrarán frustrante incrustar contenido de Facebook e Instagram. Esperamos que este artículo os haya ayudado a rectificar el tema de Facebook oEmbed en WordPress.

Si todavía tienes problemas con los incrustados de Facebook e Instagram, ¡haznoslo saber en los comentarios!

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.