Las API de las redes sociales han crecido mucho desde que Google lanzó la primera versión de su API de Youtube en mayo de 2008, y desde que Facebook lanzó la primera versión de su API Graph en abril de 2010. Hoy, estas API te dan la oportunidad de buscar en las plataformas de redes sociales: posts, usuarios, canales y data demográfica. También te dejan crear tu propio servicio o conocer más sobre tu base de usuarios.
En este artículo, vamos a examinar las formas en las que podemos utilizar algunas de las API en las redes sociales populares:
- Facebook (API Graphic y Marketing)
- YouTube
También vamos a discutir sus limitaciones y exploraremos algunas de sus herramientas más útiles que se encuentran disponibles con estas API. Luego, en el artículo, echaremos un vistazo a cómo integrar estas API a cualquier aplicación de Rails.
Me voy a concentrar en la API de una red social a la vez, para explicar sus capacidades, limitaciones y herramientas disponibles. Habrá una matriz con las diferentes API y sus propiedades para hacer una mejor comparación más adelante en el artículo.
Para poder usar las API, primero debes instalar una aplicación que crea preguntas en nombre de tu aplicación con peticiones basadas en OAuth. Los usuarios autenticarán su información en tu aplicación y luego de esto, puedes tener acceso a su data con el identificador de acceso de usuario que dé como resultado.
El desactualizado FQL (Facebook Query Language) usado para un lenguaje de preguntas similar al SQL, el cual podría ser usado para acceder a toda la data de Facebook.
Facebook lanzó la primera versión de su API Graph en abril de 2010. La versión más reciente, al momento de escribir este artículo, es la 2.6, la cual se introdujo el 12 de abril de 2016. Es una API de bajo nivel de base HTTP que puede ser usada para preguntar por data, crear posts y hasta crear campañas publicitarias automatizadas.
Herramientas
El Explorador API Graph es la herramienta más usada comúnmente al trabajar con la API de Facebook. Te deja ejecutar las preguntas de la API Graph en el buscador, al igual que examinar los resultados: puedes usar uno de los bloques de acceso de tu aplicación o crear uno en el momento con scopes seleccionados.
Habilidades
La API Graph es una API con base REST que te permite crear, actualizar y eliminar objetos de cada petición HTTP en algunos nodos.
Token de Acceso
Para ejecutar preguntas a la API Graph, necesitas un token de acceso el cual se obtiene en cuanto un usuario autorice de manera exitosa en tu aplicación.
Scopes
Los scopes determinan qué acciones se pueden realizar en nombre del usuario. La aplicación pide ciertos scopes cuando un usuario se autoriza en una aplicación. El scope
publish_actions
, por ejemplo, permite que una aplicación publique posts de parte de un usuario. El scope de correo electrónico permite que la aplicación lea el correo electrónico del usuario. Una revisión completa de todos los scopes la puedes encontrar en la documentación om.
Ciertos scopes como el
publish_actions
o ads_management
requieren una revisión de parte de Facebook antes del lanzamiento de la aplicación.Ejemplo
Para demostrar cómo funciona la API Graph, te mostraré cómo crear, actualizar y eliminar posts con la API.
Para obtener tus propios posts, puedes ejecutar la pregunta GET
/me/posts
. El resultado será una cadena de caracteres JSON con una lista de posts, incluyendo su mensaje, created_time, e identificación. Puedes usar el parámetro pretty
o un formateador JSON para que la respuesta no se vea tan desordenada.
Para obtener más data sobre tus posts, puedes extender la pregunta con campos como parámetros de preguntas. Por ejemplo, la pregunta
me/posts?fields=reactions, picture
te dará la foto y reacciones del post.
Para crear un post, puedes enviar una acción POST a edge feed, ej.
me/feed
, con parámetros como message: hello world
. La API Graph regresará un objeto JSON con la ID del post que creaste. Puedes ver el post en la dirección http://facebook.com/[post_id]
.
Para actualizar un post, puedes enviar una solicitud POST al nodo del post con los campos para ser actualizados como parámetros; ej.,
/[post_id]
y parámetros como Message: lorem ipsum
. Se regresará un indicador exitoso con valor de verdadero o falso.
Para eliminar un post puedes, simplemente, hacer una petición de ELIMINAR al nodo con el post ID (ej.,
/[post_id]
). El valor de regreso será un objeto JSON con un valor exitoso de verdadero o falso.
Una revisión completa de todos los nodos y acciones está disponible en la Referencia API Graph.
API de Marketing
La API de marketing merece una mención especial ya que es una de las herramientas más poderosas de manejo de publicidad en Facebook y obtiene una percepción desde adentro de la publicidad, a través de tu aplicación.
Funciona de la misma manera que otros métodos de API Graph. Sin embargo, necesitas el scope
ads_management
para obtener acceso a las publicidades del usuario. Facebook también necesita revisar tu aplicación antes de que puedas publicarla.Prueba
Una vez que creas tu aplicación, está en modo desarrollo y automáticamente se hace visible en el tablero de tu aplicación (ej.,
https://developers.facebook.com/apps/
).
En modo desarrollo, solo administradores, desarrolladores y probadores tienen acceso a tu aplicación. Puedes agregar probadores y administradores y la sección de roles del tablero de tu aplicación.
Proceso de Revisión
Cuando se agregan ciertos permisos, Facebook necesita revisar tu aplicación antes de que puedas publicarla. El proceso de revisión está definido por este set de guías.
Para poder ingresar ciertos ítems a revisión, solo tienes que agregarlos a la sección de revisión del tablero de tu aplicación. Facebook te guiará a través del proceso de revisión y te alertará una vez que tu aplicación sea aprobada.
Limitaciones y Métodos Alternativos
Limites de Tasa
Una aplicación puede realizar 200 llamadas por hora por cada usuario en agregado. Si llegas a ese límite, tus llamadas API darán como resultado un error.
Buscando Posts en Facebook
Facebook restringe la búsqueda de posts y etiquetas en Facebook a través de la API Graph y FQL. Sin embargo, puedes usar la API Google Search para buscar posts públicos en Facebook y luego usar la identificación-post en la URL para tomar más información sobre posts específicos a través de la API Graph.
Obtener Data de Público Personalizado
Percepción de Público en Facebook es una herramienta de búsqueda importante para aprender más sobre un público basado en intereses, demografía, u otros atributos (ej., una colección de direcciones de correo electrónico).
Sin embargo, no he encontrado una manera de crear automáticamente una percepción de público a través de la API publicitaria. Déjanos saber en los comentarios si tienes algunas ideas creativas o sugerencias para esto.
La API de Instagram fue lanzada en abril de 2014 y te permite construir aplicaciones que analizan los posts de los usuarios y los ayuda a manejar sus propios posts.
Herramientas
Ya que la consola API de Instagram fue eliminada al momento de escribir este artículo, te recomiendo usar Apigee con el propósito de probarlo en tu buscador.
Habilidades
La API de Instagram es una API basada en REST. Todos sus puntos de salida se describen en su documentación oficial.
Token de Acceso
Para ejecutar las preguntas a la API de Instagram, necesitas un token de acceso que se obtiene tan pronto como el usuario autoriza en tu aplicación. Para que un usuario reciba un token de acceso, él o ella debe ser dirigido a la autorización URL de tu aplicación. El servidor redirigirá al usuario después de autorizar tu aplicación y posteriormente podrás leer el token.
Scopes
Tu aplicación puede pedir permisos diferentes. Por ejemplo, lo “básico” te limita a leer la información de perfil al igual que fotos e imágenes de un usuario. “public_content” te permite leer cualquier perfil público y material multimedia en nombre de un usuario.
Ejemplos
Para demostrar cómo funciona la API de Instagram, mostraré ejemplos basados en el punto de salida de la multimedia
https://api.instagram.com/v1/media/popular
.
Este punto de salida regresa la multimedia popular actual de Instagram, si se pasa un bloque de acceso como parámetro. El resultado será una cadena de posts JSON que contienen, por cada uno, su identificación multimedia, un link a su imagen, likes, comentarios, el usuario que lo publicó y algunos otros atributos.
Puedes usar apigee para probar y descubrir más sobre los puntos de salida de la API y sus parámetros.
Pruebas
Cada nueva aplicación que ha sido creada en la plataforma Instagram comienza en modo sandbox. Este es un ambiente completamente funcional que te permite probar los puntos de salida API disponibles públicamente, antes de que presentes tu aplicación para ser revisada.
Para probar tu aplicación, solo debes crear una versión de etapas y ejecutar todas las preguntas a través de esa versión en vez de la versión en vivo que pasó por la revisión.
Proceso de Revisión
Aplicaciones en el modo sandbox puede usar cualquier punto de salida de API, pero éstas están restringidas a un número limitado de usuarios y material multimedia. Es un gran mecanismo para el desarrollo y pruebas de una aplicación.
Para lanzar en vivo y acceder a todo el contenido de Instagram, necesitarás pasar tu aplicación por una revisión. Una vez ha sido revisada, solo podrás pedir scopes para usuarios para quienes fue aprobada tu aplicación.
Limitaciones y Métodos Alternativos
Análisis Demográfico
Al momento de escribir este artículo, no había manera de obtener información sobre la edad de un usuario público, sexo o intereses, porque Instagram no te da esa información.
Para obtener la data de la información demográfica sobre los seguidores o una lista de usuarios de Instagram, necesitarías iterar sobre cada uno de ellos e intentar determinar la edad y sexo, basado en sus seguidores o la información en sus biografías.
Una gran solución de data para este problema podría ser un servicio muy valioso para algunas compañías.
Limites de Tasa
Todos los límites de tasa en la plataforma de Instagram son controlados por un bloque de acceso en una ventana deslizante de 1 hora. Las aplicaciones en vivo tienen límites de tasa más altos que las aplicaciones en Modo Sandbox. El límite de tasa global para una aplicación en vivo es, actualmente, de 5.000 llamadas por hora.
La API de Twitter fue lanzada en septiembre de 2006. Es una API pública REST que provee acceso leído y escrito a la data de Twitter. La autenticación se realiza usando OAuth. Las respuestas son en formato JSON.
Herramientas
Twitter tiene una herramienta de consola API impulsada por apigee, que puede ser usada para probar las peticiones en el buscador.
Habilidades
La API REST te permite obtener los tweets, seguidores y personas a quien sigue un usuario. También puedes buscar las etiquetas en otros tweets.
Token de Acceso
Twitter te permite crear aplicaciones que los usuarios puedan autenticar al regreso del token de acceso. El modelo de autenticación es OAuth.
Scopes
Hay solo dos permisos que deben ser establecidos en la página de configuración de la aplicación: Solo Lectura, y Lectura y Escritura. El último de estos te deja crear tweets y ejecutar otras acciones de los posts de parte del usuario.
Ejemplos
Para demostrar el uso de la API de Twitter, voy a tomar los tweets autorizados por el usuario. El resultado es una cadena de caracteres JSON con las imágenes, favoritos, retweets, las url, fecha de creación y otros atributos de los tweets. Utiliza Apigee para probar y descubrir más sobre los puntos de salida de la API y sus parámetros.
Pruebas y Proceso de Revisión
Actualmente no hay un proceso de revisión o modo de prueba disponible para la API de Twitter.
Limitaciones y Métodos Alternativos
Análisis Demográfico
Actualmente no hay una manera fácil de obtener data demográfica desde los seguidores de Twitter de un usuario. El acercamiento en fuerza bruta sería revisar cada seguidor e intentar obtener la data a través de sus biografías y cuentas asociadas de otras redes sociales.
Después, puedes hacer suposiciones basadas en la data recolectada de los seguidores a través de un análisis de data. Otra manera de obtener más información es a través de la plataforma API de proyecto pago de Twitter llamado GNIP. Entre otras cosas, te permite crear un público y obtener más información sobre aquellos a través de la API. La API está actualmente en estado BETA.
Limites de Tasa
Twitter tiene límites de tasa por cada usuario y en base de 15 minutos. Si tu aplicación tiene tokens múltiples, puedes alternar tokens para operaciones públicas, para así evitar llegar al límite.
YouTube
La API de Data de YouTube fue lanzada en enero de 2013. Te permite agregar características de YouTube a tu aplicación, buscar contenido y analizar la demografía del canal de YouTube. Es un OAuth, la API REST basada en tokens, la cual regresa respuestas JSON.
Herramientas
El explorador de la API te permite hacer pruebas de peticiones no autorizadas al igual que autorizadas. Puedes ejecutar peticiones desde tu buscador a los puntos de salida proporcionados.
Habilidades
Entre otras cosas, puedes trabajar con actividades, chats, transmisiones en vivo, canales, vídeos y suscripciones. La mayoría de los puntos de salida requieren que autorices con una cuenta de YouTube.
Token de Acceso
La API de Data de YouTube apoya el protocolo OAuth 2.0 para autorizar acceso a la data de usuario privado. Una vez que un usuario ha sido autorizado en tu aplicación, será redirigido a tu aplicación donde el token de acceso debería ser guardado.
Para poder usar la autorización OAuth 2.0, primero necesitas obtener las credenciales de autorización en la consola de desarrollador de Google.
Scopes
La API de Data de YouTube actualmente trabaja con los siguientes scopes:
- Fuerza SSL - Maneja tu cuenta de youtube, pero solo con una conexión SSL.
- Por defecto - Maneja tu cuenta de YouTube. Este scope es funcionalmente idéntico al scope youtube.force-ssl pero no requiere una conexión SSL.
- Solo Lectura - Mira tu cuenta YouTube.
- Subir - Subir vídeos a YouTube y manejar tus vídeos de YouTube.
- Auditar un Canal Compañero - Retira información que utilizan las Redes Multicanal como criterio de aceptación o rechazo de un canal en su red.
Ejemplos
Como ejemplo de uso de la API de Data de YouTube, muestro las siguientes preguntas de petición para vídeos con “codificación” en su título y descripción:
https://www.googleapis.com/youtube/v3/search?part=snippet&q=coding&key={YOUR_API_KEY}
El resultado es un objeto JSON que contiene el título, descripción, videold y channelld. Puedes usar el último de estos para saber más sobre el canal.
El parámetro
part
se requiere para cualquier petición de API que regresa alguna fuente. El parámetro identifica propiedades de recurso que deberían estar incluidas en una respuesta API. Por ejemplo, una fuente de vídeo tiene las siguientes partes: snippet, contentDetails, fileDetails, player, processingDetails, recordingDetails, estadísticas, estatus, sugerencias, topicDetails.
El resto de los parámetros, excepto la llave API, difiere de la llamada por llamada. Lee más sobre esto en la guía de referencia API.
La API de Pinterest fue lanzada inicialmente en abril de 2015. Es una API RESTful, la cual proporciona acceso a la data del usuario de Pinterest, como sus tableros, seguidores y más. La API de Pinterest usa OAuth y permite leer y escribir permisos cuando se interactúa con el contenido del usuario.
Herramientas
Como los otros, Pinterest proporciona una API Explorer para probar sus puntos de salida y ejecutar preguntas a estos. Puedes ver sus herramientas aquí.
Habilidades
La API REST de Pinterest te permite crear pins, tableros y hacer preguntas a la data Pinterest con OAuth.
Token de Acceso
Pinterest usa OAuth 2.0 para autenticar peticiones entre tu aplicación y tus usuarios. Todas las peticiones se deben hacer sobre HTTPS.
Scopes
Los Scopes determinan lo que una publicación puede hacer de parte de un usuario. Pinterest usa los siguientes scopes:
none
(debe conocer al identificador) Usa el método GET en el perfil del usuario, tablero y detalles Pin, y los Pin en el tablero.read_public
: Usa el método GET en el Pin de un usuario, tablero y likes.write_public
: Usa los métodos PATCH, POST, y ELIMINAR en los Pins y tableros del usuario.read_relationships
: Usa el método GET en los seguidores y a quien sigue el usuario (en tableros, usuarios e intereses).write_relationships
: Usa los métodos PATCH, POST, y ELIMINAR en los seguidores y a quien sigue el usuario (en tableros, usuarios e intereses).
Ejemplos
Para demostrar el uso de la API de Pinterest, voy a demostrar cómo leer los últimos pins del usuario:
https://api.pinterest.com/v1/me/pins/?access_token={your_token}&fields=id,link,note,url,counts,board,created_at
regresará los pins del usuario con su identificación, link, nota, url, likes y repins.Pruebas y Proceso de Revisión
Las aplicaciones están inicialmente en modo desarrollo y deben ser presentadas para revisión antes de su lanzamiento en modo producción.
Limitaciones y Métodos Alternativos
Análisis Demográfico
No hay una manera común de obtener data demográfica de un tablero. Sin embargo, puedes intentar obtener los seguidores e información de estos de la biografía en los tableros, al igual que los links a otras cuentas de redes sociales. Una gran solución de data sobre las conexiones comunes de los usuarios también es una posibilidad.
Búsqueda de Pins
Actualmente, no hay manera posible de buscar pins con ciertas etiquetas o palabras clave a través de la API. Puedes ignorar esa limitación al usar la API de Google Custom Search para buscar resultados solo en los pins de Pinterest y recolectar la identificación del pin a través de la URL. La identificación puede posteriormente, ser usada para obtener información sobre el Pin a través de la API.
Limites de Tasa
Cada aplicación (con una identificación de aplicación única) se le permite 1,000 llamadas por cada punto de salida por hora por cada token de usuario único.
Cada respuesta API regresa un encabezado que te da una actualización sobre límites de tasa. X-Ratelimit-Limites el límite de tasa para esa petición en específico y X-Ratelimit-Remaining es el número de peticiones que te quedan en una ventana de 60 minutos.
Si excedes tu límite de tasa para el punto de salida dado, obtendrás un código de error 429 “Too many requests” .
Comparación de APIs de Redes Sociales
Version | OAuth | Format | Demographics | |
---|---|---|---|---|
v2.6 Initial Release: April 2010 | OAuth 2 | REST requests with JSON responses | Supported | |
v1 Initial Release: April 2014 | OAuth 2 | REST requests with JSON responses | Not supported | |
v1.1 Initial Release: September 2006 | OAuth 1 | REST requests with JSON responses | Only supported with GNIP | |
YouTube | v3 Initial Release: January 2013 | OAuth 2 | REST requests with JSON responses | Supported |
v1 Initial Release: April 2015 | OAuth 2 | REST requests with JSON responses | Not Supported |
Aplicación Demo Devise
Al integrar estas APIs en tus aplicaciones nuevas o ya existentes, gracias a un exceso de paquetes y bibliotecas API de redes sociales, este proceso es más fácil que nunca. La mayoría de las plataformas y frameworks tienen bibliotecas de terceras partes que han sido probadas, que hasta unifican el aspecto de autenticación de todas estas APIs en una sola biblioteca con una arquitectura de plugin ordenada.
Para este artículo, echaremos un vistazo a cómo Devise, una gema de Ruby, hace esto muy elegantemente para las aplicaciones de Rails. Devise es una biblioteca de autenticación flexible basada en Warden que implementa, autenticación, registro, acceso y almacén de data para proporcionar acceso múltiple. Si eres una persona más inclinada al front-end y quieres ver algo similar a AngularJS, revisa este artículo.
Devise, como muchas bibliotecas de este tipo, no vienen ya construidas con apoyo para cualquiera de las API de redes sociales. Apoyo para cada una de estas API de redes sociales, se proporciona a través de gemas adicionales. Las siguientes gemas están disponibles para la autenticación de Rails, que cubren los cinco proveedores discutidos en este artículo:
gem 'omniauth-facebook'
gem 'omniauth-pinterest'
gem 'omniauth-twitter'
gem 'omniauth-google-oauth2'
gem 'omniauth-instagram'
Ya que éstas sólo proporcionan autenticación, registro, acceso y almacén de cada uno de esos proveedores, también vamos a necesitar obtener las siguientes gemas para los clientes de la API:
gem 'twitter' # https://github.com/sferik/twitter
gem 'instagram' # https://github.com/facebookarchive/instagram-ruby-gem
gem 'koala' # (Facebook API) https://github.com/arsduo/koala
gem 'google-api-client' # (YouTube API), https://github.com/google/google-api-ruby-client
gem 'pinterest-api' # https://github.com/realadeel/pinterest-api
Omniauth y Autenticación
Para que un usuario pueda autorizar tu aplicación con tu proveedor, puedes proporcionar un link con el siguiente camino:
omniauth_authorize_path('user', :facebook)
omniauth_authorize_path('user', :instagram)
...
Para poder reaccionar en el llamado después de la autenticación de un usuario, puedes definir un OmniauthCallbacksController con los scopes como funciones así:
class AuthenticationsController < Devise::OmniauthCallbacksController
def facebook
if request.env["omniauth.auth"]
...
end
end
end
Ese es el lugar donde agregar un nuevo modelo de Autenticación con el token y la data dentro de tu aplicación:
authentication = where(provider: omniauth.provider, user_id: user.id)
.first_or_create do |auth|
auth.user = user
auth.uid = omniauth.uid
auth.secret = omniauth.credentials.secret
auth.token = omniauth.credentials.token
...
end
Hacer Llamadas API
Aquí hay un ejemplo de cómo usar Koala para hacer preguntas a la API de Facebook. El resto de los proveedores funcionan más o menos de manera similar y son documentadas en el README de la gema.
Así es como obtienes tu data de usuario usando Koala:
authentication = user.authentication_for_provider(:facebook)
token = authentication.token
api = Koala::Facebook::API.new(token)
results = api.get_object("me")
Puedes, luego, usar el resultado de regreso de JSON hecho por la API. El código fuente de este demo de la aplicación está disponible en GitHub.
Para Finalizar
Las API de redes sociales te proporcionan una herramienta poderosa para hacer preguntas al set de las datas en gran escala de las redes sociales, al igual que recolectar gran data para tu aplicación. Puedes construir un servicio sobre estas API o usarlas para aumentar tu propia aplicación o perspectivas del usuario.
Rails y las gemas disponibles, hacen más fácil integrar estas API a tu aplicación de rails y hacer preguntas a las interfaces con una capa de abstracción entre tu aplicación y la API.
No hay comentarios:
Publicar un comentario
El administrador se reserva el derecho de publicar los mensajes