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.
Avant d’ajouter le partage à votre application, effectuez les étapes suivantes :
.plist
de votre application.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 iOSChaque 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.
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 :
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 }
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 :
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) } }
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 :
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]
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.
Sur iOS, Facebook dispose de boutons natifs permettant de déclencher les partages.
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
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
:
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.
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.
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.
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")
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.
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.