Verwende die Graph API, um Daten in den Social Graph von Facebook einzubinden und sie von dort abzurufen.
Dazu gehört Folgendes:
Dieser Leitfaden beschreibt die Arbeit mit der Graph API mithilfe des Facebook-SDK für iOS.
Für das Aufrufen der Graph API muss sich eine Person über Facebook bei deiner App anmelden und Berechtigungen für deine App erteilen.
Wenn du beispielsweise die E-Mail-Adresse einer Person abrufen möchtest, muss deine App für die Berechtigung email
autorisiert sein. Mache dich mit Folgendem vertraut:
Du muss darüber hinaus deine Entwicklungsumgebung für das iOS-SDK sowie deine App einrichten. Weitere Informationen findest du unter iOS, Leitfaden für erste Schritte.
Das SDK nutzt zwei Klassen für die Arbeit mit der Graph API: FBSDKGraphRequest
und FBSDKGraphRequestConnection.
Diese Klassen ähneln NSURLRequest
und NSURLRequestConnection
des Foundation-Framework.
Um FBSDKGraphRequest
zu verwenden, musst du der Anfrage einen bestimmten Graph API-Endpunkt bereitstellen. Rufe dann FBSDKGraphRequestConnection.
auf, um die Anfrage zu starten und zu verarbeiten.
Für eine einfachere Verwendung verfügt das SDK über eine startWithCompletionHandler:-
Methode in FBSDKGraphRequest
um implizit eine FBSDKGraphRequestConnection.
für dich zu erstellen.
Um beispielsweise die Profilinformationen für die Person abzurufen, die derzeit bei deiner App angemeldet ist, führe diesen Aufruf durch:
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)") } }
In der Graph API kannst du Batch-Anfragen in einer einzelnen HTTP-Anfrage durchführen. Weitere Informationen findest du unter Graph API, Senden von Batch-Anfragen.
Mit dem SDK kannst du mehrere Anfragen erstellen und sie zu derselben FBSDKGraphRequestConnection.
Instanz hinzufügen. Du solltest Anfragen wann immer möglich in Batches zusammenfassen, um den Netzwerkdatenverkehr zu minimieren.
Hier fordern wir beispielsweise die „Gefällt mir“-Angaben einer Person an:
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() }
Du kannst auch Batch-Parameter mit den addRequest:completionHandler:-
Overloads angeben. So kannst du einen Batch mit abhängigen Anfragen erstellen.
Du kannst zwar FBSDKGraphRequests
zur Arbeit mit Graph API-Endpunkten auch manuell erstellen, doch das Facebook-SDK für iOS vereinfacht das Teilen von Fotos und Videos mit FBSDKShareKit.framework
. So teilst du beispielsweise ein Foto:
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()
Du kannst auch Videos teilen, indem du den FBSDKShareVideoContent-
Typ verwendest. Weitere Informationen hierzu findest du unter Teilen in iOS.
Du kannst auch von deiner App erstellte Objekte löschen, indem du eine DELETE-
Anfrage mit der Objekt-ID als Graph-Pfad sendest.
Beispiel: Du hast ein Foto auf einer Seite veröffentlicht und die ID „1234“ erhalten. Mit dem folgenden Code kannst du das Foto löschen:
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") } } }
Du kannst Anfragen im Graph API Explorer testen und mit ihnen experimentieren.
Außerdem kannst du den Graph API-Debug-Modus aktivieren. Weitere Informationen hierzu findest du unter iOS-SDK-Fehlerbehebung, Graph API-Debug-Modus.