Partage sur iOS

Lorsque vous intégrez Facebook Login, Facebook Sharing ou Facebook Gaming, certains évènements d’application sont automatiquement consignés et collectés pour le Gestionnaire d’évènements, à moins que vous ne désactiviez la consignation automatique des évènements d’application. Nous recommandons à tous les développeurs et toutes les développeuses qui utilisent Facebook Login, Facebook Sharing ou Facebook Gaming, de bien comprendre comment marche cette fonctionnalité. Pour en savoir plus sur les informations collectées et sur la façon de désactiver la consignation automatique des évènements d’application, consultez la page Consignation automatique des évènements d’application.

Cliquez ici pour des détails supplémentaires sur le SDK iOS de Facebook.

Ce guide explique comment activer le partage depuis votre application iOS sur Facebook. Lorsqu’un·e utilisateur·ice partage du contenu depuis votre application, il apparaît sur son journal et dans le Flux de ses ami·es.

Conditions requises

Avant d’ajouter le partage à votre application, effectuez les étapes suivantes :

  • Ajoutez le SDK Facebook pour iOS à votre environnement de développement mobile.
  • Configurez et associez votre ID d’application Facebook.
  • Ajoutez votre ID d’application, votre nom à l’écran et la raison (dans un format lisible) de l’accès aux photos du fichier .plist de votre application.
  • Associez le FBSDKShareKit.framework à votre projet.

Votre application ne doit pas pré-remplir le contenu à partager. Cela est incompatible avec la Politique de la plateforme Facebook, voir les Politiques développeur·se.

Démarrer avec le SDK pour iOS

Modélisation du contenu

Chaque type de contenu possède une interface conforme à SharingContent que vous pouvez utiliser pour le représenter. Après avoir modélisé le contenu, ajoutez une interface de partage à votre application, conforme à Sharing comme ShareDialog.

Lorsque des personnes partagent des liens depuis votre application sur Facebook, elles incluent un attribut contentURL avec le lien à partager. Créez votre contenu à partager pour les liens avec le modèle ShareLinkContent.

Voici un exemple de déclenchement de partage :

guard let url = URL(string: "https://developers.facebook.com") else {
    // handle and return
}

let content = ShareLinkContent()
content.contentURL = url

let dialog = ShareDialog(
    viewController: self,
    content: content,
    delegate: self
)
dialog.show()

Remarque : si votre application partage des liens vers les boutiques iTunes ou Google Play, nous ne publions pas les images ni les descriptions que vous indiquez dans le partage. Au lieu de cela, nous publions certaines informations de l’application que nous récupérons directement sur la boutique d’applications avec le Webcrawler. Cela peut ne pas inclure d’images. Pour prévisualiser un partage de lien sur iTunes ou Google Play, saisissez votre URL dans le Programme de débug du partage.

Photos

Les personnes qui utilisent votre application peuvent partager des photos sur Facebook à l’aide de la boîte de dialogue Partager ou en utilisant une interface personnalisée :

  • La taille maximale des photos est de 12 Mo.
  • L’installation de l’application Facebook native pour iOS, version 7.0 ou supérieure, est requise.

Créez votre contenu à partager pour les photos avec le modèle SharePhotoContent.

func imagePickerController(
    _ picker: UIImagePickerController, 
    didFinishPickingMediaWithInfo 
    info: [UIImagePickerController.InfoKey : Any]
) {
    guard let image = info[.originalImage] as? UIImage else {
        // handle and return
        return
    }
    let photo = SharePhoto(
        image: image,
        userGenerated: true
    )
    var content = SharePhotoContent()
    content.photos = [photo]
    // use the content
}

Vidéos

Les personnes qui utilisent votre application peuvent partager des vidéos sur Facebook à l’aide de la boîte de dialogue Partager ou en utilisant votre propre interface personnalisée :

  • La taille maximale des vidéos est de 50 Mo.
  • Le partage nécessite l’installation du client Facebook pour iOS, version 26.0 ou supérieure.

Créez votre contenu à partager pour les vidéos avec le modèle FBSDKShareVideoContent. Pour obtenir une liste complète des attributs, consultez la documentation de référence FBSDKShareVideoContent.

func imagePickerController(
    _ picker: UIImagePickerController,
    didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]
) {
    let video: ShareVideo

    if #available(iOS 11, *) {
        guard let videoAsset = info[.phAsset] as? PHAsset else {
            return
        }
        video = ShareVideo(videoAsset: videoAsset)
    } else {
        guard let url = info[.referenceURL] as? URL else {
            return
        }
        video = ShareVideo(videoURL: url)
    }
}

Multimédia

Les personnes qui utilisent votre application peuvent partager une combinaison de photos et de vidéos sur Facebook au moyen de la boîte de dialogue Partager. Notez les conditions suivantes :

  • Le partage nécessite l’installation du client Facebook pour iOS.
  • La taille maximale des photos est de 12 Mo et la taille maximale des vidéos est de 50 Mo.
  • Les personnes peuvent partager une vidéo au maximum et jusqu’à 29 ou 30 photos.

Créez votre contenu multimédia à partager avec le modèle ShareMediaContent.

let photo = SharePhoto(...)
let video = ShareVideo(...)

var content = ShareMediaContent()
content.media = [photo, video]

Méthodes de partage

Après avoir géré le contenu en créant un modèle, vous pouvez déclencher les boîtes de dialogue Partager ou Contacter.

Boutons

Sur iOS, Facebook dispose de boutons natifs permettant de déclencher les partages.


Bouton Partager

Le bouton Partager permet aux utilisateur·ices de partager du contenu dans leur journal Facebook, dans le journal d’un·e ami·e ou dans un groupe. Le bouton Partager appelle la boîte de dialogue Partager. Pour ajouter un bouton Partager à votre affichage, ajoutez-y l’extrait de code suivant :

var button = FBShareButton()
button.shareContent = content
// Add button to view

Bouton Envoyer

Le bouton Envoyer permet aux utilisateur·ices d’envoyer des photos, des vidéos et des liens de manière privée à leurs ami·es et à leurs contacts à l’aide de l’application Facebook Messenger. Le bouton Envoyer appelle la boîte de dialogue Contacter. Pour ajouter un bouton Envoyer à votre affichage, ajoutez-y l’extrait de code suivant :

var button = SendButton()
button.shareContent = content
// Add button to view

Si l’application Messenger n’est pas installée, le bouton Envoyer est masqué. Pour vérifier si le bouton Envoyer peut être affiché sur l’appareil actuel, utilisez la propriété isImplicitlyDisabled du bouton SendButton :

Boîte de dialogue Partager

Pour utiliser les expériences de partage intégrées à Facebook, vous devez définir votre contenu comme indiqué dans la section Modélisation du contenu ci-dessus, puis appeler la boîte de dialogue Partager. Par exemple, pour partager un lien à l’aide de la boîte de dialogue Partager :

guard let url = URL(string: "https://developers.facebook.com") else {
    // handle and return
}

let content = ShareLinkContent()
content.contentURL = url

let dialog = ShareDialog(
    viewController: self,
    content: content,
    delegate: self
)
dialog.show()

Dans les anciennes versions du SDK pour iOS, votre application devait vérifier si une application Facebook native était installée avant de pouvoir ouvrir la boîte de dialogue Partager. Si l’application n’était pas installée, vous deviez fournir votre propre code pour appeler une autre boîte de dialogue.

Désormais, le SDK contrôle automatiquement la présence de l’application Facebook native. Si elle n’a pas été installée, le SDK renvoie les utilisateur·ices à leur navigateur par défaut et ouvre la boîte de dialogue Fil.

Si l’application Facebook native est installée, les utilisateur·ices verront la feuille de partage iOS plutôt que d’être renvoyé·es à l’application native Facebook pour iOS.

Boîte de dialogue Contacter

La boîte de dialogue Contacter bascule vers l’application native Messenger pour iOS, puis votre application reprend le contrôle une fois l’actualité publiée.

MessageDialog(content: content, delegate: delegate).show()

Remarque : la boîte de dialogue Contacter n’est actuellement pas prise en charge sur les iPad.

Intégration d’iOS

iOS inclut une feuille de partage native qui permet de publier des mises à jour de statut, des photos, des vidéos et des liens sur Facebook. Il prend également en charge la définition de l’audience ciblée et l’identification d’un lieu dans la publication. Le SDK Facebook prend en charge l’utilisation de ce contrôleur natif ; cette expérience représente ce que vous voyez dans la plupart des cas lorsque vous appelez la boîte de dialogue Partager Facebook.

L’utilisation de la feuille de partage iOS est soumise aux Politiques développeur·se, y compris la section 2.3 stipulant que le pré-remplissage par les applications n’est pas autorisé dans le contexte de la feuille de partage. Cela signifie que les applications ne doivent pas préremplir le champ initialText de la feuille de partage en y renseignant du contenu qui n’a pas été saisi par la personne qui utilise l’application.

Cette API utilise également le même bloc de style que d’autres parties du SDK Facebook. Pour afficher la boîte de dialogue Partager iOS native, utilisez :

let dialog = ShareDialog(
    viewController: self,
    content: content,
    delegate: nil
)
dialog.mode = .shareSheet
dialog.show()

Notez que viewController est nécessaire pour afficher la feuille de partage.

Hashtags

Vous pouvez faire apparaître un hashtag avec une photo, une vidéo ou un lien partagé. Ce hashtag apparaît également dans la boîte de dialogue Partager et les personnes ont la possibilité de l’effacer avant de publier.

Voici un exemple d’ajout d’un hashtag lors du partage d’un lien.

let content = ShareLinkContent()
guard let url = URL(string: "https://developers.facebook.com") else { return }

content.contentURL = url
content.hashtag = Hashtag("#MadeWithHackbook")

Rubriques avancées

Avec App Links, vous pouvez créer un lien vers votre application depuis des actualités Facebook publiées à partir de votre application.

Lorsque des utilisateur·ices cliquent sur une actualité Facebook publiée depuis votre application, cette dernière s’ouvre et vous pouvez même ajouter un lien vers un contenu particulier de l’application.

iOS Simulator et tests

Lorsque vous utilisez Simulator pour tester les partages dans votre application, des erreurs s’afficheront si vous essayez de partager des vidéos ou des photos. En effet, vous devez avoir installé Facebook pour iOS qui fournit la boîte de dialogue Partager. Nous ne prenons pas en charge cette fonctionnalité pour Simulator.

Dans le cas des partages de liens, vous n’avez pas besoin d’installer Facebook pour iOS pour pouvoir effectuer des tests. Pour tester d’autres scénarios de partage, configurez un appareil de test réel sur lequel vous installez Facebook pour iOS.