Utiliza la API Graph para introducir y extraer datos de la gráfica social de Facebook.
Esto incluye:
En esta guía se describe el uso de la API Graph con el SDK de Facebook para iOS.
Para llamar a la API Graph, es necesario que un usuario inicie sesión en la aplicación mediante Facebook y autorice los permisos para la aplicación.
Por ejemplo, si quieres obtener la dirección de correo electrónico de un usuario, la aplicación debe tener autorización para el permiso email.
Asegúrate de conocer las siguientes prácticas:
También necesitas la configuración del entorno de desarrollo del SDK para iOS y la configuración de la aplicación; consulta iOS, Guía de introducción.
El SDK tiene dos clases para usar la API Graph (FBSDKGraphRequest
y FBSDKGraphRequestConnection),
que son similares a las clases NSURLRequest
y NSURLRequestConnection
del marco Foundation.
Para utilizar la clase FBSDKGraphRequest,
proporciona la solicitud con un extremo específico de la API Graph. A continuación, llama a FBSDKGraphRequestConnection
para iniciar la solicitud y procesar su finalización.
Para que resulte más cómodo, el SDK tiene un método startWithCompletionHandler:
en FBSDKGraphRequest
para crear implícitamente una clase FBSDKGraphRequestConnection
para ti.
Por ejemplo, para obtener la información del perfil de la persona que tiene la sesión iniciada en la aplicación, realiza esta llamada:
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)") } }
En la API Graph, puedes realizar solicitudes por lotes en una sola solicitud HTTP; consulta API Graph: Solicitudes por lotes.
Con el SDK, puedes crear varias solicitudes y añadirlas a la misma instancia de FBSDKGraphRequestConnection
. Debes utilizar las solicitudes por lotes siempre que sea posible para minimizar el tráfico de red.
Por ejemplo, a continuación solicitamos los Me gusta de un usuario:
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() }
También puedes especificar parámetros por lotes con las sobrecargas addRequest:completionHandler:,
que incluyen la capacidad de crear un lote con solicitudes dependientes.
Aunque siempre puedes crear manualmente FBSDKGraphRequests
para usar los extremos de la API Graph, el SDK de Facebook para iOS simplifica el uso compartido de fotos y vídeos con FBSDKShareKit.framework
. Por ejemplo, para compartir una 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()
También puedes compartir vídeos con el tipo FBSDKShareVideoContent.
Consulta Compartir en iOS.
También puedes eliminar objetos que tu aplicación haya creado mediante el envío de una solicitud DELETE
con el identificador del objeto como ruta del gráfico.
Por ejemplo, imagina que has publicado una foto en una página y has recibido el identificador “1234”. El siguiente código eliminaría la foto:
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") } } }
Puedes experimentar y hacer pruebas con tus solicitudes mediante el Explorador de la API Graph.
También puedes activar el modo de depuración de la API Graph; consulta Solución de problemas del SDK para iOS: Cómo depuro las solicitudes de la API Graph.