Usa la API Graph para importar y exportar datos de la gráfica social de Facebook.
Esto incluye lo siguiente:
En esta guía, se describe cómo trabajar con la API Graph cuando se usa el SDK de Facebook para iOS.
Para realizar una llamada a la API Graph, es necesario que alguien inicie sesión en tu app a través de Facebook y conceda permisos a tu app.
Por ejemplo, si deseas obtener la dirección de correo electrónico de una persona, tu app debe contar con el permiso email
. Procura familiarizarte con los siguientes temas:
También debes configurar tu entorno de desarrollo y tu app para el SDK para iOS. Consulta la guía de primeros pasos para iOS.
El SDK tiene dos clases para trabajar con la API Graph: FBSDKGraphRequest
y FBSDKGraphRequestConnection
, que son similares a NSURLRequest
y NSURLRequestConnection
del marco Foundation.
Para usar FBSDKGraphRequest
, proporciona a la solicitud un punto de conexión específico de la API Graph. Luego, haz una llamada a FBSDKGraphRequestConnection
para iniciar la solicitud y procesar su finalización.
Para tu comodidad, el SDK tiene un método startWithCompletionHandler:
en FBSDKGraphRequest
para crear una conexión FBSDKGraphRequestConnection
implícitamente por ti.
Por ejemplo, para obtener la información del perfil de la persona que tiene una sesión iniciada actualmente en tu app, haz 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 hacer solicitudes por lotes en una única solicitud HTTP. Consulta API Graph, Hacer solicitudes por lotes.
Con el SDK, puedes crear varias solicitudes y agregarlas a la misma instancia de FBSDKGraphRequestConnection
. Siempre que sea posible, agrupa las solicitudes por lotes para minimizar el tráfico de red.
Por ejemplo, aquí se solicitan los Me gusta de una persona:
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 de lotes con las sobrecargas del addRequest:completionHandler:
, que incluyen la capacidad de crear un lote con solicitudes dependientes.
Si bien siempre puedes crear manualmente FBSDKGraphRequests
para trabajar con los extremos de la API Graph, el SDK de Facebook para iOS simplifica la función de compartir fotos y videos 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 videos usando el tipo FBSDKShareVideoContent
. Consulta Compartir en iOS.
Puedes eliminar objetos creados por tu app. Para hacerlo, envía una solicitud DELETE
con el identificador del objeto como ruta del gráfico.
Por ejemplo, supón que publicaste una foto en una página y recibiste 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 someter a experimentación y prueba tus solicitudes con 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, Modo de depuración de la API Graph.