Utilisez l’API Graph pour obtenir des données dans le graphe social de Facebook et en dehors.
Par exemple :
Ce guide décrit comment travailler avec l’API Graph en utilisant le SDK Facebook pour iOS.
L’appel de l’API Graph nécessite que quelqu’un se connecte à votre application via Facebook et accorde des autorisations pour cette dernière.
Par exemple, si vous souhaitez récupérer l’adresse e-mail d’une personne, votre application doit avoir obtenu l’autorisation email
. Assurez-vous de bien maîtriser les aspects suivants :
Il faut également que votre environnement de développement soit paramétré pour le SDK iOS et que votre application soit configurée. Pour en savoir plus, reportez-vous au guide de démarrage avec iOS.
Le SDK comporte deux classes permettant de travailler avec l’API Graph : FBSDKGraphRequest
et FBSDKGraphRequestConnection
qui sont semblables aux objets NSURLRequest
et NSURLRequestConnection
de la structure Foundation.
Pour utiliser FBSDKGraphRequest
, vous devez fournir la requête avec un point de terminaison spécifique de l’API Graph. Vous devez ensuite appeler FBSDKGraphRequestConnection
pour lancer la requête et la traiter en totalité.
Pour plus de commodité, le SDK offre une méthode startWithCompletionHandler:
sur FBSDKGraphRequest
qui permet de créer implicitement un objet FBSDKGraphRequestConnection
pour vous.
Par exemple, pour récupérer les informations de profil de la personne actuellement connectée à votre application, exécutez l’appel suivant :
guard AccessToken.current != nil else { return } let request = GraphRequest(graphPath: "me", parameters: [:]) request.start() { connection, result, error in if let result = result, error == nil { print("fetched user: \(result)") } }
Dans l’API Graph, vous pouvez exécuter des requêtes par lot via une requête HTTP unique. Pour en savoir plus, consultez l’article API Graph, Requêtes par lot.
Avec le SDK, vous pouvez construire plusieurs requêtes et les ajouter à la même instance FBSDKGraphRequestConnection
. Exécutez des requêtes par lot le plus souvent possible afin de réduire le trafic réseau.
Par exemple, la requête suivante porte sur les mentions J’aime d’une personne :
guard let token = AccessToken.current else { return } if token.hasGranted("user_likes") { let meRequest = GraphRequest(graphPath: "me", parameters: [:]) let likesRequest = GraphRequest(graphPath: "me/likes", parameters: [:]) let connection = GraphRequestConnection() connection.add(meRequest) { connection, result, error in // Process the 'me' information } connection.add(likesRequest) { connection, result, error in // Process the 'likes' information } connection.start() }
Vous pouvez également spécifier des paramètres de lot avec les surcharges addRequest:completionHandler:
, ce qui permet de créer un lot avec des requêtes dépendantes.
Bien que vous puissiez toujours créer manuellement des requêtes FBSDKGraphRequests
pour travailler avec les points de terminaison de l’API Graph, le SDK Facebook pour iOS simplifie le partage des photos et des vidéos avec FBSDKShareKit.framework
. Par exemple, pour partager une photo :
let image: UIImage! let content = SharePhotoContent() content.photos = SharePhoto(image: image, isUserGenerated: true) // Assuming self implements SharingDelegate let dialog = ShareDialog( viewController: self, content: content, delegate: self ) dialog.show()
Vous pouvez également partager des vidéos avec le type FBSDKShareVideoContent
. Consultez l’article Partage sur iOS.
Vous pouvez également supprimer des objets créés par votre application en envoyant une requête DELETE
avec l’ID de l’objet comme chemin du graphe.
Par exemple, supposons que vous ayez publié une photo sur une Page et que vous ayez reçu l’identifiant « 1234 ». Le code suivant permettrait de supprimer la photo :
guard let token = AccessToken.current else { return } if token.hasGranted("pages_manage_posts") { let request = GraphRequest(graphPath: "1234", parameters: [:], httpMethod: .delete) request.start { connection, result, error in if error == nil { print("Deleted photo") } } }
Vous pouvez expérimenter et tester vos requêtes avec l’Explorateur de l’API Graph.
Vous pouvez également activer le mode de débogage de l’API Graph. Pour en savoir plus, consultez l’article Questions/réponses et dépannage pour le SDK Facebook pour iOS, Comment déboguer des demandes de l’API Graph.