Partage sur Messenger pour iOS et Android

Lorsque vous développez avec le SDK Facebook pour iOS ou Android version 4.29.0 ou ultérieure, vous pouvez permettre aux personnes de partager des liens et des contenus multimédias de vos apps sur Messenger. Ces partages peuvent être utilisés pour déclencher vos extensions de discussion par le lien d’attribution. Ils mettront également votre extension de discussion dans le panneau Plus de la personne à l’origine du partage.

Pour en savoir plus, consultez les sections ci-dessous :

Pour l’implémentation du partage sur Messenger pour le web, consultez la page Partage sur Messenger pour le web.

Types de partage

Le SDK Facebook fournit quatre types de partage attribué et un type de partage non attribué :

Le tableau suivant dresse la liste de tous les types de partage pris en charge dans le partage sur Messenger. Il indique également si un ID d’app ou de Page est requis et comment utiliser le modèle.

Type de partage ID de Page requis ? Applications

Modèle générique

Facultatif

  • Modèle générique avec bouton
  • Modèle générique avec action par défaut
  • Modèle générique avec bouton et action par défaut

Modèle de média

Obligatoire

  • URI d’image de modèle de média
  • ID de pièce jointe d’image de modèle de média
  • URI de vidéo de modèle de média
  • ID de pièce jointe de vidéo de modèle de média

Musique Open Graph

Obligatoire

  • Musique Open Graph

Partage de lien

Facultatif

  • Lien sans attribution
  • Lien avec attribution

Photo

Pas pris en charge

  • Photos
  • Photo de la bibliothèque

Association d’ID d’app et de Page

Les développeurs peuvent préciser un ID de Page dans le flux de partage. Lorsque les personnes partagent du contenu depuis une app sur Messenger au moyen du SDK Sharing, le contenu est attribué à la Page. Les administrateurs de Page, à leur tour, peuvent éviter de fausses attributions en contrôlant quelles apps peuvent utiliser une attribution de partage pour leurs Pages. Pour accorder une attribution de partage à une app, l’administrateur associe l’ID de l’app à l’ID de la Page.

Pour associer un ID d’app et un ID de Page :

  1. Accédez aux Paramètres de la Page.
  2. Cliquez sur la section Plate-forme Messenger.
  3. Accédez à la section Associer une app dans les Paramètres généraux.
  4. Saisissez l’ID d’app et cliquez sur le bouton Associer.
  5. Si l’app N’ÉTAIT PAS déjà dans le tableau Apps abonnées, elle s’affichera dans le tableau et le rôle « attribution de partage » lui sera associé. Si l’app apparaissait déjà dans le tableau, le nouveau rôle « attribution de partage » sera ajouté pour cette app.

Les administrateurs de Page peuvent également retirer l’autorisation d’une app pour l’utilisation de l’attribution de partage.

Pour supprimer le rôle « attribution de partage » pour une app donnée :

  1. Dans le tableau Apps abonnées, cliquez sur le menu déroulant dans la colonne « rôle » pour l’app.
  2. Cliquez sur « attribution de partage » pour désélectionner le rôle.
  3. Si « attribution de partage » était le seul rôle pour l’app, la ligne de l’app sera supprimée du tableau. Sinon, la ligne demeure, mais la ligne « attribution de partage » est désélectionnée.

Ajout de domaines à la liste blanche

Si vous utilisez un bouton URL dans le SDK de partage et si vous souhaitez activer l’extension Messenger pour votre URL lorsqu’elle est ouverte dans Messenger, vous devez ajouter le domaine de votre URL à la liste blanche pour que le partage fonctionne correctement.

Pour mettre un domaine sur liste blanche :

  1. Accédez aux Paramètres de la Page.
  2. Cliquez sur la section Plate-forme Messenger.
  3. Accédez à la section Associer une app dans les Paramètres généraux.
  4. Dans le champ Domaines sur liste blanche, saisissez le domaine de l’URL et cliquez sur Enregistrer.

Pour en savoir plus sur l’ajout à la liste blanche, consultez la section SDK Messenger Extensions : liste blanche obligatoire de domaines.

iOS

Conditions requises

Avant d’ajouter le partage sur Messenger à votre app, effectuez les étapes suivantes :

  • Ajoutez le SDK Facebook pour iOS à votre environnement de développement mobile.
  • Configurez votre ID d’app Facebook et associez-le à votre ID de Page avec l’outil Plate-forme Messenger.
  • Ajoutez votre ID d’app, le nom d’affichage et la raison, lisible par l’homme, de l’accès aux photos du fichier .plist de votre application.
  • Associez le FBSDKShareKit.framework à votre projet.

Pour en savoir plus, consultez la page Démarrer avec le SDK Facebook pour iOS.

Vérifiez également que votre app appelle canShow sur l’instance FBSDKMessageDialog afin de déterminer si la personne dispose d’une version compatible de Messenger installée sur son appareil.

Exemple de partage du modèle générique

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

Exemple de partage du modèle 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];
}

Exemple de partage de Musique 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

Conditions requises

Suivez les instructions de la page Partage sur Android, résumées ci-après :

Vérifiez également que votre app appelle MessageDialog.canshow({template}) afin de déterminer si la personne dispose d’une version compatible de Messenger installée sur son appareil.

Exemple de partage du modèle générique

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

Partage du modèle 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);
}

Exemple de partage de Musique 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);
}