Condivisione su Messenger per iOS e per Android

Quando usi l'SDK di Facebook per iOS o per Android nelle versioni 4.29.0 o successive, puoi consentire agli utenti di condividere su Messenger link e contenuti multimediali dalle tue app. Queste condivisioni possono essere usate per attivare le tue estensioni della chat attraverso il link di attribuzione e per mettere l'estensione delle chat nella barra Altro di chi ha condiviso.

Per maggiori informazioni, consulta le seguenti sezioni:

Per l'implementazione della condivisione su Messenger per il web, consulta Condivisione su Messenger per il web.

Tipi di condivisione

L'SDK di Facebook offre quattro di tipi di condivisioni con attribuzione e un tipo di condivisione senza attribuzione:

La seguente tabella elenca tutti i tipi di condivisione supportati nella condivisione su Messenger, insieme all'eventuale necessità di ID Pagina o app, e le modalità di uso dei modelli.

Tipo di condivisione ID pagina obbligatorio? App

Modello generico

Facoltativo

  • Modello generico con pulsante
  • Modello generico con azione predefinita
  • Modello generico con pulsante e azione predefinita

Modello con contenuti multimediali

Obbligatorio

  • URI dell'immagine del modello con contenuti multimediali
  • AttachmentID dell'immagine del modello con contenuti multimediali
  • URL del video del modello con contenuti multimediali
  • ID allegato del video del modello con contenuti multimediali

Musica su Open Graph

Obbligatorio

  • Musica su Open Graph

Condivisione link

Facoltativo

  • Link senza attribuzione
  • Link con attribuzione

Foto

Non supportate

  • Foto
  • Foto da librerie

Link per app e ID Pagine

Gli sviluppatori possono specificare un ID Pagina nel flusso di condivisione e quando gli utenti condividono contenuti su Messenger da un'app mediante l'SDK di condivisione, il contenuto viene attribuito alla Pagina. Di contro, gli amministratori della Pagina possono evitare le false attribuzioni controllando quali app possono usare un'attribuzione di condivisione per le Pagine. Per concedere un'attribuzione di condivisione per un'app, l'amministratore collega l'ID app all'ID Pagina.

Per collegare un ID app a un ID Pagina:

  1. Accedi a Impostazioni nella Pagina.
  2. Clicca sulla sezione Piattaforma Messenger.
  3. Accedi alla sezione Collega un'app nelle Impostazioni generali.
  4. Inserisci l'ID app e clicca sul pulsante Collega.
  5. Se l'app NON è già presente nella tabella App iscritte, verrà visualizzata nella tabella con il ruolo "attribuzione di condivisione" associato. Se l'app era già nella tabella, verrà aggiunto il nuovo ruolo "attribuzione di condivisione" per l'app.

Gli amministratori della Pagina possono anche rimuovere l'autorizzazione dell'app all'uso dell'attribuzione di condivisione.

Per rimuovere il ruolo di "attribuzione di condivisione" per una determinata app:

  1. Nella tabella App iscritte, clicca sul menu a discesa nella colonna "Ruolo" per l'app.
  2. Clicca su "share attribution" (attribuzione di condivisione) per deselezionare il ruolo.
  3. Se "share attribution" (attribuzione di condivisione) era l'unico ruolo dell'app, la relativa riga verrà rimossa dalla tabella. In alternativa, la riga resta, ma la riga "share attribution" (attribuzione della condivisione) viene deselezionata.

Aggiunta alla whitelist dei domini

Se usi un pulsante con URL nell'SDK per la condivisione e desideri attivare l'estensione di Messenger quando l'URL viene aperto su Messenger, devi aggiungere alla whitelist il dominio dell'URL in modo che la condivisione funzioni correttamente.

Per aggiungere alla whitelist un dominio:

  1. Accedi a Impostazioni nella Pagina.
  2. Clicca sulla sezione Piattaforma Messenger.
  3. Accedi alla sezione Collega un'app nelle Impostazioni generali.
  4. Nel campo Whitelisted Domains (Domini aggiunti alla whitelist), inserisci il dominio dell'URL e clicca su Save (Salva).

Per maggiori informazioni sull'aggiunta alla whitelist, consulta SDK per le estensioni di Messenger - Aggiunta alla whitelist dei domini richiesti

IOS

Prerequisiti

Prima di aggiungere la condivisione su Messenger alla tua app, completa la procedura seguente:

Per maggiori informazioni, consulta Primi passi con l'SDK di Facebook per iOS.

Inoltre, assicurati che la tua app effettui una chiamata a canShow sull'istanza FBSDKMessageDialog per determinare se gli utenti hanno installato una versione compatibile di Messenger sui loro dispositivi.

Esempio di condivisione di modello generico

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

Esempio di condivisione di modello con contenuti multimediali

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

Esempio di condivisione di musica su 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

Prerequisiti

Attieniti alle istruzioni di Condivisione su Android riepilogate qui sotto:

Inoltre, assicurati che la tua app effettui una chiamata MessageDialog.canshow({template}) per determinare se gli utenti hanno installato una versione compatibile di Messenger sui loro dispositivi.

Esempio di condivisione di modello generico

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

Condivisione di modello con contenuti multimediali

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

Esempio di condivisione di musica su 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);
}