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 las personas compartan enlaces y contenido multimedia en Messenger desde tus aplicaciones. Puedes usar estos elementos compartidos para activar tus extensiones de chat a través del enlace de atribución. También se incorporará tu extensión de chat en el menú emergente de la persona que comparta el contenido.

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

Con el SDK de Facebook se facilitan cuatro tipos de contenido compartido atribuido y uno no atribuido:

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

Tipo de contenido compartido ¿Se requiere identificador de 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 contenido multimedia

Obligatorio

  • URI de imagen de plantilla de contenido multimedia
  • Identificador de elemento adjunto de imagen de plantilla de contenido multimedia
  • URL de vídeo de plantilla de contenido multimedia
  • Identificador de elemento adjunto de vídeo de plantilla de contenido multimedia

Música de Open Graph

Obligatorio

  • Música de Open Graph

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 aplicación a uno de página:

  1. Accede a la configuración de la página correspondiente.
  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. Escribe el identificador de la aplicación y haz clic en el botón Vincular.
  5. Si la aplicación aún NO se mostraba en la tabla Suscripciones a aplicaciones, ahora aparecerá en ella con el rol asociado “atribución de contenido compartido”. En caso de que la aplicación ya se incluyera en la tabla, se le añadirá 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” de una aplicación determinada:

  1. En la tabla Suscripciones a aplicaciones, haz clic en el menú desplegable de 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”.

Lista de dominios autorizados

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 incluir el dominio de la URL en la lista de autorizados para que el contenido se comparta correctamente.

Para incluir un dominio en la lista de autorizados:

  1. Accede a la configuración de la página correspondiente.
  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 autorizados, escribe el dominio de la URL y haz clic en Guardar.

Consulta SDK de extensiones de Messenger: lista de dominios autorizados requerida para obtener más información sobre dicha lista.

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 Primeros pasos con el SDK de Facebook para iOS.

Además, debes asegurarte de que tu aplicación llame al método canShow en la instancia de la clase FBSDKMessageDialog para determinar si las personas tienen instalada una versión compatible de Messenger en sus dispositivos.

Ejemplo de cómo compartir una 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 cómo compartir una plantilla de contenido 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 cómo compartir música de Open Graph

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 incluidas en Compartir en Android, que se resumen a continuación:

Además, debes asegurarte de que tu aplicación llame a MessageDialog.canshow({template}) para determinar si las personas tienen instalada una versión compatible de Messenger en sus dispositivos.

Ejemplo de cómo compartir una 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);
}

Ejemplo de cómo compartir una plantilla de contenido 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 cómo compartir música de Open Graph

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);
}