API de redes sociales: el portal de Internet al mundo real
Publicado: 2022-03-11Las API de redes sociales han recorrido un largo camino desde que Google lanzó la primera versión de su API de YouTube en mayo de 2008 y Facebook lanzó la primera versión de Graph API en abril de 2010. Hoy, estas API le brindan la oportunidad de consultar publicaciones en las plataformas de redes sociales. , usuarios, canales y datos demográficos. Incluso le permiten crear su propio servicio o averiguar más sobre su base de usuarios.
En este artículo, examinaremos las formas en que podemos utilizar algunas de las API de redes sociales populares:
- Facebook (API de gráficos y marketing)
- Gorjeo
- YouTube
También discutiremos sus limitaciones y exploraremos algunas de las herramientas útiles que están disponibles para usar con estas API. Más adelante en el artículo, también veremos cómo integrar estas API en cualquier aplicación de Rails.
Me centraré en una API de red social a la vez y explicaré sus capacidades, limitaciones y herramientas disponibles. Habrá una matriz con las diferentes API y sus propiedades para una mejor comparación más adelante en este artículo.
Para usar las API, primero deberá configurar una aplicación que cree consultas en nombre de su aplicación con solicitudes basadas en OAuth. Los usuarios se autenticarán en su aplicación y luego podrá acceder a sus datos con el token de acceso de usuario resultante.
El FQL (lenguaje de consulta de Facebook) ahora obsoleto solía ser un lenguaje de consulta similar a SQL que podía usarse para acceder a todos los datos 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, que se presentó el 12 de abril de 2016. Es una API basada en HTTP de bajo nivel que se puede usar para consultar datos, crear publicaciones e incluso crear campañas publicitarias automatizadas.
Herramientas
Graph API Explorer es la herramienta más utilizada cuando se trabaja con la API de Facebook. Le permite ejecutar consultas Graph API en el navegador y examinar los resultados: puede usar uno de los tokens de acceso de su aplicación o crear uno sobre la marcha con ámbitos seleccionados.
Capacidades
Graph API es una API basada en REST que le permite crear, actualizar y eliminar objetos por solicitud HTTP en ciertos nodos.
Ficha de acceso
Para ejecutar consultas en Graph API, necesita un token de acceso que se obtiene tan pronto como un usuario autoriza con éxito en su aplicación. Su aplicación debe almacenar el token de acceso.
Ámbitos
Los ámbitos determinan qué acciones se pueden realizar en nombre de un usuario. La aplicación solicita ciertos alcances cuando un usuario autoriza en una aplicación. El ámbito de las publish_actions
de publicación, por ejemplo, permite que una aplicación publique publicaciones en nombre de un usuario. El alcance del correo electrónico permite que la aplicación lea el correo electrónico del usuario. En la documentación oficial se incluye una descripción completa de todos los ámbitos.
Ciertos ámbitos, como las publish_actions
de publicación o la gestión de ads_management
requieren una revisión por parte de Facebook antes del lanzamiento de la aplicación.
Ejemplos
Para demostrar cómo funciona Graph API, le mostraré cómo leer, crear, actualizar y eliminar publicaciones con la API.
Para obtener sus propias publicaciones, puede ejecutar la consulta GET /me/posts
. El resultado será una cadena JSON con una lista de publicaciones, incluido su mensaje, created_time e id. Puede usar el parámetro pretty
o un formateador JSON para que la respuesta parezca menos desordenada.
Para obtener más datos sobre sus publicaciones, puede ampliar la consulta con campos como parámetros de consulta. Por ejemplo, la consulta me/posts?fields=reactions, picture
le dará la imagen y las reacciones de la publicación.
Para crear una publicación, simplemente puede enviar una acción POST contra el feed perimetral, por ejemplo, me/feed
, con parámetros como message: hello world
. Graph API devolverá un objeto JSON con el ID de su publicación creada. A continuación, puede ver la publicación en la dirección http://facebook.com/[post_id]
.
Para actualizar una publicación, puede enviar una solicitud POST al nodo de la publicación con los campos que se actualizarán como parámetros; por ejemplo, /[post_id]
y parámetros como Message: lorem ipsum
. Se devolverá un indicador de éxito con un valor de verdadero o falso.
Para eliminar una publicación, simplemente puede realizar una solicitud DELETE al nodo con el ID de la publicación (p. ej., /[post_id]
). El valor de retorno será un objeto JSON con un valor de éxito de verdadero o falso.
Una descripción completa de todos los nodos y acciones está disponible en la Referencia de la API Graph.
API de marketing
La API de marketing merece una mención especial porque es una herramienta poderosa para administrar anuncios de Facebook y obtener información sobre anuncios a través de su aplicación.
Funciona de la misma manera que otros métodos de Graph API. Sin embargo, necesita el ámbito ads_management
para poder acceder a los anuncios del usuario. Facebook también necesita revisar su aplicación antes de que pueda publicarla.
Pruebas
Una vez que crea su aplicación, está en modo de desarrollo y se ve automáticamente en el panel de su aplicación (es decir, https://developers.facebook.com/apps/
).
En el modo de desarrollo, solo los administradores, desarrolladores y evaluadores tienen acceso a su aplicación. Puede agregar evaluadores y administradores en la sección de funciones del panel de control de su aplicación.
Proceso de revisión
Al agregar ciertos permisos, Facebook necesita revisar su aplicación antes de que pueda publicarla. El proceso de revisión está definido por este conjunto de directrices.
Para enviar ciertos elementos para su revisión, simplemente puede agregarlos en la sección Revisión de la aplicación del panel de control de su aplicación. Luego, Facebook lo guiará a través del proceso de revisión y recibirá una alerta una vez que se apruebe su aplicación.
Limitaciones y soluciones alternativas
Límites de tasa
Una aplicación puede realizar 200 llamadas por hora por usuario en total. Si alcanza ese límite, sus llamadas a la API generarán un error.
Búsqueda de publicaciones en Facebook
Facebook restringe la búsqueda de publicaciones y etiquetas en Facebook a través de Graph API y FQL. Sin embargo, puede usar la API de búsqueda de Google para buscar publicaciones públicas de Facebook y luego usar la identificación de la publicación en la URL para recuperar más información sobre publicaciones específicas a través de la API Graph.
Obtener datos de audiencia personalizados
Audience Insights en Facebook es una poderosa herramienta de investigación para obtener más información sobre una audiencia en particular en función de los intereses, la demografía u otros atributos (por ejemplo, una colección de direcciones de correo electrónico).
Sin embargo, no he encontrado una manera de crear automáticamente información sobre la audiencia a través de la API de anuncios. Háganos saber en los comentarios si tiene alguna idea creativa o sugerencia para esto.
La API de Instagram se lanzó por primera vez en abril de 2014 y le permite crear aplicaciones que analizan las publicaciones de los usuarios y ayudan a los usuarios a administrar sus propias publicaciones.
Herramientas
Dado que la consola API de Instagram está obsoleta en el momento de este artículo, recomiendo usar Apigee para realizar pruebas en su navegador.
Capacidades
La API de Instagram es una API basada en REST. Todos sus puntos finales se describen en su documentación oficial.
Ficha de acceso
Para ejecutar consultas en la API de Instagram, necesita un token de acceso que se obtiene tan pronto como un usuario autoriza en su aplicación. Para que un usuario reciba un token de acceso, debe ser dirigido a la URL de autorización de su aplicación. Luego, el servidor redirigirá al usuario después de autorizar su aplicación y luego podrá leer el token.
Ámbitos
Su aplicación puede solicitar diferentes permisos. Por ejemplo, "básico" lo limita a leer la información y los medios del perfil de un usuario. “public_content” le permite leer cualquier perfil público y medios en nombre de un usuario.
Ejemplos
Para demostrar cómo funciona la API de Instagram, revisaré algunos ejemplos basados en el punto final de medios https://api.instagram.com/v1/media/popular
.
Este punto final devuelve los medios actualmente populares de Instagram si se pasa un token de acceso como parámetro. El resultado será una matriz JSON de publicaciones que contengan, para cada una, su ID de medios, un enlace a su imagen, me gusta, comentarios, el usuario que la publicó y algunos otros atributos.
Puede usar apigee para jugar y obtener más información sobre los puntos finales de la API y sus parámetros.
Pruebas
Cada nueva aplicación creada en la plataforma de Instagram comienza en modo sandbox. Este es un entorno completamente funcional que le permite probar los puntos finales de API disponibles públicamente antes de enviar su aplicación para su revisión.
Para probar su aplicación, simplemente cree una versión provisional y ejecute todas las consultas a través de esa versión en lugar de la versión en vivo que pasó por la revisión.
Proceso de revisión
Las aplicaciones en modo sandbox pueden usar cualquier extremo de la API, pero están restringidas a una cantidad limitada de usuarios y medios. Es un gran mecanismo para desarrollar y probar una aplicación.
Para publicar y acceder a todo el contenido de Instagram, deberá enviar su solicitud para su revisión. Una vez revisada, solo podrá solicitar los alcances de los usuarios para los que se aprobó su aplicación.
Limitaciones y soluciones
Análisis Demográfico
Al momento de escribir este artículo, no hay forma de obtener información sobre la edad, el género o los intereses de los usuarios públicos, ya que Instagram no te brinda esa información.
Para obtener datos demográficos sobre los seguidores o una lista de usuarios de Instagram, debe iterar sobre todos ellos e intentar determinar su edad y género o intereses en función de sus seguidores o la información proporcionada en su biografía.
Una buena solución de big data para este problema podría ser un servicio valioso para algunas empresas.
Límites de tasa
Todos los límites de tarifas en la plataforma de Instagram están controlados por un token de acceso en una ventana móvil de 1 hora. Las aplicaciones en vivo tienen límites de velocidad más altos que las aplicaciones en modo Sandbox. El límite de frecuencia global para una aplicación en vivo es actualmente de 5000 llamadas por hora.
Gorjeo
La API de Twitter se lanzó por primera vez en septiembre de 2006. Es una API REST pública que brinda acceso de lectura y escritura a los datos de Twitter. La autenticación se realiza mediante OAuth. Las respuestas están en formato JSON.
Herramientas
Twitter tiene una herramienta de consola API impulsada por apigee que se puede usar para probar solicitudes en el navegador.
Capacidades
La API REST le permite obtener los tweets, seguidores y personas seguidas de un usuario. También puedes buscar hashtags en otros tweets.
Ficha de acceso
Twitter le permite crear aplicaciones en las que los usuarios pueden autenticarse a cambio de un token de acceso. El modelo de autenticación es OAuth.
Ámbitos
Solo hay dos permisos que deben configurarse en la página de configuración de la aplicación: solo lectura y lectura y escritura. Este último le permite crear tweets y realizar otras acciones de publicación en nombre de un usuario.
Ejemplos
Para demostrar el uso de la API de Twitter, recuperaré los tweets del usuario autorizado. El resultado es una matriz JSON con las imágenes, los favoritos, los retweets, las URL, la fecha de creación y otros atributos del tweet. Usa Apigee para experimentar y obtener más información sobre los puntos finales de la API y sus parámetros.
Proceso de prueba y revisión
Actualmente no hay ningún proceso de revisión o modo de prueba disponible para la API de Twitter.

Limitaciones y soluciones alternativas
Análisis Demográfico
Actualmente no existe una manera fácil de obtener datos demográficos de los seguidores de Twitter de alguien. El enfoque de fuerza bruta sería navegar a través de cada seguidor e intentar obtener los datos a través de su biografía y cuentas de redes sociales vinculadas.
Luego puede hacer suposiciones adicionales basadas en los datos recopilados de los seguidores a través del análisis de datos. Otra forma de obtener más información es a través de la plataforma API empresarial paga de Twitter, GNIP. Entre otras cosas, te permite crear audiencias y obtener información sobre ellas a través de la API. La API se encuentra actualmente en BETA.
Límites de tasa
Twitter tiene límites de frecuencia por usuario y por 15 minutos. Si su aplicación tiene múltiples tokens, simplemente puede alternar tokens para operaciones públicas para evitar alcanzar el límite.
YouTube
La API de datos de YouTube se introdujo por primera vez en enero de 2013. Le permite agregar funciones de YouTube a su aplicación, buscar contenido y analizar la demografía de un canal de YouTube. Es una API REST basada en token de OAuth que devuelve respuestas JSON.
Herramientas
API Explorer le permite probar solicitudes no autorizadas y autorizadas. Puede ejecutar solicitudes desde su navegador en los puntos finales proporcionados.
Capacidades
Entre otras cosas, puedes trabajar con actividades, chats, transmisiones en vivo, listas de reproducción, canales, videos y suscripciones. La mayoría de los puntos finales requieren que autorice con una cuenta de YouTube.
Ficha de acceso
La API de datos de YouTube es compatible con el protocolo OAuth 2.0 para autorizar el acceso a datos privados de usuarios. Una vez que un usuario ha sido autorizado en su aplicación, será redirigido a su aplicación donde se debe guardar el token de acceso.
Para utilizar la autorización de OAuth 2.0, primero debe obtener las credenciales de autorización en la consola de desarrollo de Google.
Ámbitos
Actualmente, la API de datos de YouTube admite los siguientes ámbitos:
- Forzar SSL: administre su cuenta de YouTube, pero solo a través de una conexión SSL.
- Predeterminado: administra tu cuenta de YouTube. Este alcance es funcionalmente idéntico al alcance youtube.force-ssl pero no requiere una conexión SSL.
- Solo lectura: vea su cuenta de YouTube.
- Cargar: cargue videos de YouTube y administre sus videos de YouTube.
- Auditoría de canal de socios: recupere información que las redes multicanal utilizan como criterio para aceptar o rechazar un canal en su red.
Ejemplos
Como ejemplo del uso de la API de datos de Youtube, las siguientes consultas de solicitud de videos 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, la descripción, el videoId y el channelId. Puede usar este último para obtener más información sobre el canal.
El parámetro part
es obligatorio para cualquier solicitud de API que devuelva un determinado recurso. El parámetro identifica las propiedades del recurso que deben incluirse en una respuesta de la API. Por ejemplo, un recurso de video tiene las siguientes partes: fragmento, detalles de contenido, detalles de archivo, reproductor, detalles de procesamiento, detalles de grabación, estadísticas, estado, sugerencias, detalles de tema.
Todos los demás parámetros, excepto la clave API, difieren de una llamada a otra. Obtenga más información al respecto en la guía de referencia de la API.
La API de Pinterest se lanzó inicialmente en abril de 2015. Es una API RESTful que brinda acceso a los datos de Pinterest de un usuario, como sus tableros, pines, seguidores y más. La API de Pinterest usa OAuth y permite permisos de lectura y escritura al interactuar con el contenido de un usuario.
Herramientas
Al igual que otros, Pinterest proporciona un Explorador de API para probar sus puntos finales y ejecutar consultas contra ellos. Puedes echar un vistazo a todas sus herramientas aquí.
Capacidades
La API REST de Pinterest te permite crear pines, tableros y consultar datos de Pinterest con OAuth.
Ficha de acceso
Pinterest usa OAuth 2.0 para autenticar las solicitudes entre su aplicación y sus usuarios. Todas las solicitudes deben realizarse a través de HTTPS.
Ámbitos
Los ámbitos determinan lo que una aplicación puede hacer en nombre de un usuario. Pinterest utiliza los siguientes ámbitos:
-
none
(debe conocer el identificador): use el método GET en el perfil de un usuario, los detalles del tablero y del Pin, y los Pines en un tablero. -
read_public
: use el método GET en los Pines, tableros y Me gusta de un usuario. -
write_public
: use los métodos PATCH, POST y DELETE en los pines y tableros de un usuario. -
read_relationships
: use el método GET en los seguidores y seguidores de un usuario (en tableros, usuarios e intereses). -
write_relationships
: use los métodos PATCH, POST y DELETE en los seguidores y seguidores de un usuario (en tableros, usuarios e intereses).
Ejemplos
Para demostrar el uso de la API de Pinterest, demostraré cómo leer los pines más recientes del usuario:
https://api.pinterest.com/v1/me/pins/?access_token={your_token}&fields=id,link,note,url,counts,board,created_at
devolverá los pines de un usuario con su id, enlace, nota, url, me gusta y repines.
Proceso de prueba y revisión
Las aplicaciones están inicialmente en modo de desarrollo y deben enviarse para su revisión antes de que se publiquen en modo de producción.
Limitaciones y soluciones
Análisis Demográfico
No existe una forma común de obtener datos demográficos de un tablero. Sin embargo, puede intentar obtener seguidores de un tablero e información sobre ellos desde su biografía y enlaces a otras cuentas de redes sociales. Una solución de big data sobre las conexiones comunes del usuario también sería una posibilidad.
Buscar Pines
Actualmente no hay forma de buscar pines con ciertas etiquetas o palabras clave a través de la API. Puede eludir esa limitación utilizando la API de búsqueda personalizada de Google para buscar resultados solo en los pines de Pinterest y recopilar la identificación del pin a través de la URL. La identificación se puede usar para obtener información sobre el pin a través de la API.
Límites de tasa
A cada aplicación (con una ID de aplicación única) se le permiten 1000 llamadas por punto final por hora para cada token de usuario único.
Cada respuesta de la API devuelve un encabezado que le brinda una actualización sobre los límites de frecuencia. X-Ratelimit-Limit es el límite de velocidad para esa solicitud específica, y X-Ratelimit-Remaining es la cantidad de solicitudes que le quedan en la ventana de 60 minutos.
Si excede su límite de tasa para un punto final determinado, obtendrá un código de error 429 "Demasiadas solicitudes".
Comparación de API de redes sociales
Versión | OAuth | Formato | Demografía | |
---|---|---|---|---|
v2.6 Versión inicial: abril de 2010 | OAuth 2 | Solicitudes REST con respuestas JSON | Soportado | |
v1 Versión inicial: abril de 2014 | OAuth 2 | Solicitudes REST con respuestas JSON | No soportado | |
Gorjeo | v1.1 Versión inicial: septiembre de 2006 | OAuth 1 | Solicitudes REST con respuestas JSON | Solo compatible con GNIP |
YouTube | v3 Versión inicial: enero de 2013 | OAuth 2 | Solicitudes REST con respuestas JSON | Soportado |
v1 Versión inicial: abril de 2015 | OAuth 2 | Solicitudes REST con respuestas JSON | No soportado |
Aplicación de demostración con Devise
Integrar estas API en sus aplicaciones nuevas o existentes, gracias a una gran cantidad de paquetes y bibliotecas de API de redes sociales, es más fácil que nunca. La mayoría de las plataformas y marcos modernos tienen bibliotecas de terceros probadas en el tiempo que incluso unifican el aspecto de autenticación de todas estas API en una sola biblioteca con una arquitectura de complemento ordenada.
Para este artículo, veremos cómo Devise, una joya de Ruby, hace esto de manera muy elegante para las aplicaciones de Rails. Devise es una biblioteca de autenticación flexible basada en Warden que implementa autenticación, registro, inicio de sesión y almacenamiento de datos para múltiples proveedores de inicio de sesión. Si eres más un tipo de front-end y quieres ver algo similar para AngularJS, echa un vistazo a este artículo.
Devise, como la mayoría de las bibliotecas de esta clase, no viene integrado con soporte para ninguna de las API de redes sociales mencionadas anteriormente. El soporte 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 5 proveedores discutidos en este artículo:
gem 'omniauth-facebook' gem 'omniauth-pinterest' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-instagram'
Dado que estos solo brindan autenticación, registro, inicio de sesión y almacenamiento para cada uno de esos proveedores, también necesitaremos obtener las siguientes gemas para los clientes API reales:
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 autorice su aplicación con su proveedor, simplemente puede proporcionar un enlace con la siguiente ruta:
omniauth_authorize_path('user', :facebook) omniauth_authorize_path('user', :instagram) ...
Para reaccionar a la devolución de llamada después de autenticar a un usuario, puede definir un OmniauthCallbacksController con los ámbitos como funciones como:
class AuthenticationsController < Devise::OmniauthCallbacksController def facebook if request.env["omniauth.auth"] ... end end end
Ese es el lugar para agregar un nuevo modelo de autenticación con el token y los datos en su 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
Realización de llamadas a la API
Aquí hay un ejemplo de cómo usar Koala para consultar la API de Facebook. El resto de proveedores funcionan más o menos de forma similar y están documentados en el README de la gema.
Así es como obtienes tus datos de usuario usando Koala:
authentication = user.authentication_for_provider(:facebook) token = authentication.token api = Koala::Facebook::API.new(token) results = api.get_object("me")
Luego puede usar el resultado JSON devuelto por la API. El código fuente de esta aplicación de demostración está disponible en GitHub.
Envolver
Las API de redes sociales le brindan una poderosa herramienta para consultar el gran conjunto de datos de las redes sociales y recopilar grandes datos para su aplicación. Puede crear un servicio sobre estas API o utilizarlas para mejorar su propia aplicación y los conocimientos de los usuarios.
Rails y las gemas disponibles facilitan la integración de estas API en su aplicación Rails y consultan las interfaces con una capa de abstracción entre su aplicación y la API.