Uso compartido en Messenger para iOS y Android

Si desarrollas con el SDK para iOS o Android versión 4.29.0 o posterior, puedes permitir que las personas compartan enlaces y elementos multimedia desde las aplicaciones a Messenger. Estos contenidos compartidos se pueden usar para activar las extensiones del chat a través del enlace de atribución. Además, pondrán a la extensión del chat en el contenedor "Más" para el plugin "Compartir".

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

Para implementar el uso compartido en Messenger para la web, consulta Uso compartido en Messenger para la web.

Tipos de contenido compartido

El SDK de Facebook proporciona cuatro tipos de contenido compartido atribuidos y uno sin atribución:

En la siguiente tabla, se enumeran todos los tipos de contenido compartido que se admiten en el uso compartido en Messenger. Además, se indica si es obligatorio el identificador de una página o una aplicación y las maneras de usar la plantilla.

Tipo de contenido compartido ¿Es obligatorio el identificador de la página? Aplicaciones

Plantilla genérica

Opcional

  • Plantilla genérica con botón
  • Plantilla genérica con acción predeterminada
  • Plantilla genérica con botón y acción predeterminada

Plantilla de elementos multimedia

Obligatorio

  • URI de imagen con plantilla de elementos multimedia
  • Identificador de archivo adjunto de imagen con plantilla de elementos multimedia
  • URL de video con plantilla de elementos multimedia
  • Identificador de archivo adjunto de video con plantilla de elementos multimedia

Open Graph Music

Obligatorio

  • Open Graph Music

Contenido compartido mediante enlace

Opcional

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

Foto

No se admite

  • Fotos
  • Foto de la biblioteca

Vincular los identificadores de la aplicación y la página

Los desarrolladores pueden especificar un identificador de la página en el proceso para compartir. De esta manera, cuando las personas compartan contenido de una aplicación a Messenger mediante el SDK para compartir contenido, el contenido se atribuye a la página. A su vez, los administradores de las páginas pueden impedir las atribuciones falsas controlando cuáles aplicaciones pueden usar una atribución de contenido compartido para sus páginas. Para conceder una atribución de contenido compartido de la aplicación, el administrador vincula el identificador de esta última con el de la página.

Para vincular un identificador de aplicación al de una 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 Configuración general.
  4. Ingresa el identificador de la aplicación y haz clic en el botón Vincular.
  5. Si esta aplicación NO se encontraba ya en la tabla Suscripciones de aplicaciones, se mostrará en la tabla con el rol "share attribution" (atribución de contenido compartido) asociado a ella. Si la aplicación ya estaba en la tabla, se agregará el nuevo rol "share attribution" para esa aplicación.

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 "share attribution" para una aplicación determinada:

  1. En la tabla Suscripciones de aplicaciones, haz clic en el menú desplegable en la columna "rol" para la aplicación
  2. Haz clic en "share attribution" para anular la selección del rol.
  3. Si "share attribution" era el único rol para la aplicación, se eliminará la fila de la tabla para la aplicación. De lo contrario, la fila permanecerá, pero se anulará la selección de la fila "share attribution".

Crear una lista blanca de dominios

Si usas un botón de URL en el SDK para compartir contenido y quieres activar la extensión de Messenger para la URL al abrirla en Messenger, tienes que crear una lista blanca de dominios de URL para que funcione correctamente el contenido compartido.

Para incluir un dominio en la lista blanca:

  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 Configuración general.
  4. En el campo Dominios admitidos, ingresa el dominio de la URL y haz clic en Guardar.

Para obtener más información sobre la creación de una lista blanca, consulta SDK de extensiones de Messenger: lista blanca de dominios obligatorios

iOS

Requisitos previos

Sigue estos pasos antes de agregar el uso compartido en Messenger a la aplicación:

Para obtener más información, consulta Primeros pasos con el SDK de Facebook para iOS.

Asegúrate también de que la aplicación llame al extremo canShow en la instancia FBSDKMessageDialog para determinar si las personas tienen una versión compatible de Messenger instalada en sus dispositivos.

Ejemplo de contenido compartido con la plantilla genérica

FBSDKShareMessengerURLActionButton *urlButton = [[FBSDKShareMessengerURLActionButton alloc] init];
urlButton.title = @"Visit Facebook";
urlButton.url = [NSURL URLWithString:@"https://www.facebook.com"];
    
FBSDKShareMessengerGenericTemplateElement *element = [[FBSDKShareMessengerGenericTemplateElement alloc] init];
element.title = @"This is a Cat Picture";
element.subtitle = @"Look at this cat, wow! Amazing.";
element.imageURL = [NSURL URLWithString:@"https://static.pexels.com/photos/126407/pexels-photo-126407.jpeg"];
element.button = urlButton;
    
FBSDKShareMessengerGenericTemplateContent *content = [[FBSDKShareMessengerGenericTemplateContent alloc] init];
content.pageID = // Your page ID, required for attribution
content.element = element;

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init];
messageDialog.shareContent = content;

if ([messageDialog canShow]) {
    [messageDialog show];
}

Ejemplo de contenido compartido con la plantilla de elementos multimedia

// Share with mediaURL
FBSDKShareMessengerURLActionButton *urlButton = [[FBSDKShareMessengerURLActionButton alloc] init];
urlButton.title = @"Visit Facebook";
urlButton.url = [NSURL URLWithString:@"https://www.facebook.com"];

NSURL *mediaURL = // Must be a Facebook URL, see media template documentation
FBSDKShareMessengerMediaTemplateContent *content = [[FBSDKShareMessengerMediaTemplateContent alloc] initWithMediaURL:mediaURL];
content.pageID = // Your page ID, required
content.mediaType = FBSDKShareMessengerMediaTemplateMediaTypeImage;
content.button = urlButton;

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init];
messageDialog.shareContent = content;

if ([messageDialog canShow]) {
    [messageDialog show];
}

------------------------------------------------------------------

// Share with attachmentID
FBSDKShareMessengerURLActionButton *urlButton = [[FBSDKShareMessengerURLActionButton alloc] init];
urlButton.title = @"Visit Facebook";
urlButton.url = [NSURL URLWithString:@"https://www.facebook.com"];

NSString *attachmentID = // attachmentID, see media template documentation for how to upload an attachment
FBSDKShareMessengerMediaTemplateContent *content = [[FBSDKShareMessengerMediaTemplateContent alloc] initWithAttachmentID:attachmentID];
content.pageID = // Your page ID, required
content.mediaType = FBSDKShareMessengerMediaTemplateMediaTypeImage;
content.button = urlButton;

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init];
messageDialog.shareContent = content;

if ([messageDialog canShow]) {
    [messageDialog show];
}

Ejemplo de contenido compartido con Open Graph Music

FBSDKShareMessengerURLActionButton *urlButton = [[FBSDKShareMessengerURLActionButton alloc] init];
urlButton.title = @"Visit Facebook";
urlButton.url = [NSURL URLWithString:@"https://www.facebook.com"];

FBSDKShareMessengerOpenGraphMusicTemplateContent *content = [[FBSDKShareMessengerOpenGraphMusicTemplateContent alloc] init];
content.pageID = // Your page ID, required
content.url = // open graph music url, see open graph music documentation
content.button = urlButton;

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init];
messageDialog.shareContent = content;

if ([messageDialog canShow]) {
    [messageDialog show];
}

Android

Requisitos previos

Sigue las instrucciones en Uso compartido en Android, que se resumen a continuación:

Asegúrate también de que la aplicación llame a MessageDialog.canshow({template}) para determinar si las personas tienen una versión compatible de Messenger instalada en sus dispositivos.

Ejemplo de contenido compartido con la plantilla genérica

ShareMessengerURLActionButton actionButton =
    new ShareMessengerURLActionButton.Builder()
           .setTitle("Visit Facebook")
           .setUrl(Uri.parse("https://www.facebook.com"))
           .build();
ShareMessengerGenericTemplateElement genericTemplateElement =
    new ShareMessengerGenericTemplateElement.Builder()
           .setTitle("Visit Facebook")
           .setSubtitle("Visit Messenger")
           .setImageUrl(Uri.parse("heeps://Your/Image/Url"))
           .setButton(actionButton)
           .build();
ShareMessengerGenericTemplateContent genericTemplateContent = 
    new ShareMessengerGenericTemplateContent.Builder()
           .setPageId("Your Page Id") // Your page ID, required
           .setGenericTemplateElement(genericTemplateElement)
           .build();  
                 
if (MessageDialog.canShow(genericTemplateContent)) {
    MessageDialog.show(activityOrFragment, genericTemplateContent);
}

Contenido compartido con plantilla de elementos multimedia

// Share with mediaURL
ShareMessengerMediaTemplateContent mediaTemplateContent =
    new ShareMessengerMediaTemplateContent.Builder()
            .setPageId("Your page ID") // Your page ID, required
            .setMediaType(MediaType.IMAGE)
            .setMediaUrl(Uri.parse("https://Facebook/Media/URL")) // Must be a Facebook URL, see media template documentation
            .setButton(actionButton)
            .build();
if (MessageDialog.canShow(mediaTemplateContent)) {
    MessageDialog.show(activityOrFragment, mediaTemplateContent);
}

// Share with attachmentID
ShareMessengerMediaTemplateContent mediaTemplateContent =
    new ShareMessengerMediaTemplateContent.Builder()
            .setPageId("Your page ID") // Your page ID, required
            .setMediaType(MediaType.IMAGE)
            .setAttachmentId("Attachment Id") // AttachmentID, see media template documentation for how to upload an attachment
            .setButton(actionButton)
            .build();
if (MessageDialog.canShow(mediaTemplateContent)) {
    MessageDialog.show(activityOrFragment, mediaTemplateContent);
}

Ejemplo de contenido compartido con Open Graph Music

ShareMessengerOpenGraphMusicTemplateContent musicTemplateContent =
    new ShareMessengerOpenGraphMusicTemplateContent.Builder()
                .setPageId("Your page ID") // Your page ID, required
                .setUrl(Uri.parse("https://Open/Graph/Music/URL")) // Open graph music url, see open graph music documentation
                .setButton(actionButton)
                .build();

if (MessageDialog.canShow(musicTemplateContent)) {
    MessageDialog.show(activityOrFragment, musicTemplateContent);
}