Contenido compartido en Messenger para iOS y Android

Cuando desarrollas con la versión 4.29.0 o posterior del SDK de Facebook para iOS o Android, puedes permitir que los usuarios compartan enlaces y contenido multimedia en Messenger desde tus aplicaciones. Cuando un usuario comparte contenido en Messenger, puedes activar las extensiones de chat mediante el enlace de atribución. Las extensiones de chat se muestran en la sección Más de la interfaz para compartir.

Para obtener más información, consulta estas secciones:

Para implementar el contenido compartido en Messenger para la web, consulta Contenido compartido en Messenger para la web.

Tipos de contenido compartido

El SDK de Facebook proporciona los siguientes tipos de contenido compartido:

  • Enlace compartido (igual que el enlace compartido actual pero con un pageID para atribución)
  • Foto (sin atribución)

En la siguiente tabla figuran todos los tipos de contenido compartido que se admiten en Messenger y se indica si se requiere un identificador de página o de aplicación.

Tipo de contenido compartido ¿Se requiere identificador de página? Aplicaciones

Enlace compartido

Opcional

  • Enlace sin atribución
  • Enlace con atribución

Foto

No admitido

  • Fotos
  • Foto de la fototeca

Vincular identificadores de aplicaciones y de páginas

Los desarrolladores pueden especificar un identificador de página en el proceso para compartir contenido. De esta manera, cuando las personas compartan contenido en Messenger desde una aplicación mediante el SDK de contenido compartido, el contenido se atribuirá a la página correspondiente. A su vez, los administradores de páginas pueden evitar atribuciones falsas al controlar qué aplicaciones pueden utilizar la atribución de contenido compartido para sus páginas. Para conceder la atribución de contenido compartido a una aplicación, el administrador debe vincular el identificador de esta al de la página.

Para vincular un identificador de la aplicación a uno de la página:

  1. Ve a la Configuración de la página.
  2. Haz clic en la sección Plataforma de Messenger.
  3. Ve a la sección Vincular una aplicación en la Configuración general.
  4. Introduce el identificador de la aplicación y haz clic en el botón Vincular.
  5. Si esta aplicación NO estaba ya en la tabla Aplicaciones suscritas, aparecerá en la tabla con el rol “atribución de contenido compartido” asociado. En caso de que la aplicación ya estuviera incluida en la tabla, se le añadiría el nuevo rol mencionado.

Los administradores de la página también pueden eliminar el permiso de una aplicación para usar la atribución de contenido compartido.

Para eliminar el rol “atribución de contenido compartido” de una aplicación determinada:

  1. En la tabla, Aplicaciones suscritas, haz clic en el menú desplegable en la columna “rol” de la aplicación.
  2. Haz clic en “atribución de contenido compartido” para desmarcar el rol correspondiente.
  3. Si este rol es el único de la aplicación, la fila correspondiente a esta se eliminará de la tabla. En caso contrario, la fila no desaparecerá, pero se desmarcará la fila “atribución de contenido compartido”.

Registrar dominios

Si utilizas un botón de URL en el SDK de contenido compartido y quieres activar la extensión de Messenger para tu URL cuando se abra en esta plataforma, debes registrar el dominio de la URL para que el contenido se comparta correctamente.

Para registrar un dominio, sigue estos pasos:

  1. Visita la página.
  2. Navega a Configuración > Mensajería avanzada.
  3. Añade el dominio al campo Lista de dominios autorizados.

Para obtener más información, consulta SDK de extensiones de Messenger: lista de dominios autorizados requerida.

iOS

Requisitos previos

Antes de añadir la posibilidad de compartir contenido en Messenger a tu aplicación, sigue estos pasos:

Para obtener más información, consulta Introducción al SDK de Facebook para iOS.

Asegúrate también de que tu aplicación llama a canShow o validate en la instancia MessageDialog para verificar si los usuarios tienen una versión compatible de Messenger instalada en sus dispositivos.

Limitaciones

No se admite la propiedad de presupuesto.

Ejemplo de enlace compartido

guard let url = URL(string: "https://newsroom.fb.com/") else {
    preconditionFailure("URL is invalid")
}

let content = ShareLinkContent()
content.contentURL = url

let dialog = MessageDialog(content: content, delegate: self)

do {
    try dialog.validate()
} catch {
    print(error)
}

dialog.show()

Ejemplo de foto compartida

// Assumes your assets contain an image named "puppy"
guard let image = UIImage(named: "puppy") else {
    return
}

let photo = SharePhoto(image: image, userGenerated: true)
let content = SharePhotoContent()
        content.photos = [photo]

let dialog = MessageDialog(content: content, delegate: self)

// Recommended to validate before trying to display the dialog
do {
    try dialog.validate()
} catch {
    print(error)
}

dialog.show()

Ejemplo de vídeo compartido

// Assuming you have a URL for a PHAsset
let video = ShareVideo(videoURL: assetURL)
let content = ShareVideoContent()
content.video = video

let dialog = MessageDialog(content: content, delegate: self)

// Recommended to validate before trying to display the dialog
do {
    try dialog.validate()
} catch {
    print(error)
}

dialog.show()

Android

Requisitos previos

Sigue las instrucciones en Compartir en Android, resumidas a continuación:

Asegúrate también de que tu aplicación llama a MessageDialog.canshow({template}) para verificar si los usuarios tienen una versión compatible de Messenger instalada en sus dispositivos.