Compartilhamento para o Messenger em iOS e Android

Quando você desenvolve com o SDK do Facebook para iOS ou Android versão 4.29.0 ou posterior, é possível habilitar o compartilhamento de links e mídia de seus aplicativos para o Messenger. Esses compartilhamentos podem ser usados ​​para ativar as extensões de bate-papo por meio do link de atribuição. Eles também colocarão sua extensão de bate-papo na gaveta para quem faz o compartilhamento.

Para obter mais informações, consulte as seguintes seções:

Para implementar o compartilhamento no Messenger para a web, consulte Compartilhamento no Messenger para a Web.

Tipos de compartilhamento

O SDK do Facebook fornece quatro tipos de compartilhamento atribuídos e um tipo de compartilhamento não atribuído:

A tabela a seguir lista todos os tipos de compartilhamento suportados no compartilhamento no Messenger, além de indicar a necessidade de um ID de página ou aplicativo e formas de usar o modelo.

Tipo de compartilhamento ID da página necessário? Aplicativos

Modelo genérico

Opcional

  • Modelo genérico com botão
  • Modelo genérico com ação padrão
  • Modelo genérico com botão e ação padrão

Modelo de mídia

Obrigatório

  • URI da imagem do modelo de mídia
  • AttachmentID da imagem do modelo de mídia
  • URL do vídeo do modelo de mídia
  • ID do anexo de vídeo do modelo de mídia

Open Graph Music

Obrigatório

  • Open Graph Music

Compartilhamento de link

Opcional

  • Link sem atribuição
  • Link com atribuição

Foto

Não suportada

  • Fotos
  • Foto da biblioteca

Vinculação de IDs de aplicativos e páginas

Os desenvolvedores podem especificar um ID de página no fluxo de compartilhamento, e quando as pessoas compartilham conteúdo de um aplicativo para o Messenger por meio do SDK de compartilhamento, o conteúdo é atribuído à Página. Os administradores de páginas, por sua vez, podem evitar atribuições falsas ao controlar quais aplicativos podem usar uma atribuição de compartilhamento para suas Páginas. Para conceder uma atribuição de compartilhamento de aplicativo, o administrador vincula o ID do aplicativo ao ID da página.

Para vincular um ID de aplicativo e um ID da página:

  1. Acesse Configurações para a Página.
  2. Clique na seção Plataforma do Messenger.
  3. Acesse a seção Vincular um aplicativo em Configurações gerais.
  4. Digite o ID do aplicativo e clique no botão Vincular.
  5. Se este aplicativo NÃO estiver na tabela Aplicativos com assinatura, ele aparecerá na tabela com a função de “atribuição de compartilhamento” associada a ele. Se o aplicativo já estiver na tabela, a nova função de “atribuição de compartilhamento” será adicionada para esse aplicativo.

Os administradores de páginas também podem remover a permissão de um aplicativo para usar a atribuição de compartilhamento.

Para remover a função “atribuição de compartilhamento” para um determinado aplicativo:

  1. Na tabela Aplicativos com assinatura, clique no menu suspenso na coluna “função” para o aplicativo.
  2. Clique na “atribuição de compartilhamento” para desmarcar a função.
  3. Se a “atribuição de compartilhamento” for a única função para o aplicativo, a linha do aplicativo será removida da tabela. Caso contrário, a linha permanece, mas a linha “compartilhar atribuição” é desmarcada.

Lista de liberação de domínios

Se você usa um botão URL no SDK de compartilhamento e deseja ativar a Extensão do Messenger para a sua URL quando aberta no Messenger, você deve incluir o domínio da URL para que o compartilhamento funcione corretamente.

Para incluir uma lista de liberação em um domínio:

  1. Acesse Configurações para a Página.
  2. Clique na seção Plataforma do Messenger.
  3. Acesse a seção Vincular um aplicativo em Configurações gerais.
  4. No campo Domínios com lista de liberação, digite o domínio da URL e clique em Salvar.

Para obter mais informações sobre listas de liberação, consulte SDK de extensões do Messenger – Lista de liberação de domínio obrigatória.

IOS

Pré-requisitos

Antes de adicionar o compartilhamento no Messenger no seu aplicativo, conclua as seguintes etapas:

  • Adicionar o SDK do Facebook para iOS ao seu ambiente de desenvolvimento móvel
  • Configurar e vincular o ID do aplicativo Facebook para o ID da Página com a ferramenta Plataforma do Messenger.
  • Adicionar seu número de identificação do aplicativo, nome de exibição e motivo compreensível para o acesso à foto ao arquivo .plist do seu aplicativo.
  • Vincular a FBSDKShareKit.framework ao seu projeto.

Para obter mais informações, consulte Introdução ao SDK do Facebook para iOS

Certifique-se também de que o seu aplicativo chama canShow na instância FBSDKMessageDialog para determinar se as pessoas possuem uma versão compatível do Messenger instalada em seus dispositivos.

Exemplo de compartilhamento de modelo genérico

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

Exemplo de compartilhamento de modelo de mídia

// 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];
}

Exemplo de compartilhamento do 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

Pré-requisitos

Siga as instruções em Compartilhamento no Android, resumidas abaixo:

Certifique-se também de que o seu aplicativo chama MessageDialog.canshow({template}) para determinar se as pessoas possuem uma versão compatível do Messenger instalada em seus dispositivos.

Exemplo de compartilhamento de modelo genérico

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

Compartilhamento de modelo de mídia

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

Exemplo de compartilhamento do 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);
}