Este instructivo detalla el proceso completo para registrarse como desarrollador de Meta (Facebook), crear una aplicación y generar el Token de Acceso de Usuario necesario para realizar análisis de datos de redes sociales, explorar grafos de amistades y acceder a información pública usando Python.
1Como obtener un “Access Token” de Facebook para análisis de datos¶
El primer paso es crear una cuenta de desarrollador en la plataforma Meta.
Ir al Portal de Desarrolladores
Abrir un navegador web y acceder al portal oficial: https://
developers .facebook .com/.
Iniciar Sesión
Hacer clic en el botón “Empezar” en la esquina superior derecha e iniciar sesión con una cuenta personal de Facebook.
Verificar la Cuenta
Seguir las instrucciones para completar el registro. Esto incluye:
Aceptar las Condiciones de la plataforma y las Políticas para desarrolladores.
Verificar la identidad proporcionando un número de teléfono o correo electrónico para recibir un código de confirmación.
Completar el perfil de desarrollador con información sobre el propósito de uso.
Proceso de Verificación
Meta puede solicitar información adicional sobre el uso previsto de la API.
La verificación puede ser inmediata o tomar hasta 24-48 horas.
Algunos casos de uso requieren verificación empresarial adicional.
2Crear una nueva aplicación de consumidor¶
Una vez aprobada tu cuenta de desarrollador, puedes crear aplicaciones para acceder a la Graph API.
Crear una Nueva Aplicación
Desde el panel de desarrolladores, hacer clic en el botón verde “Crear aplicación”.
Seleccionar el Tipo de Aplicación
Elegir la opción “Otro” para casos de uso personalizados.
En la pantalla siguiente, seleccionar “Ninguno”. Esto proporciona un “lienzo en blanco”, ideal para trabajar directamente con la API sin configuraciones predefinidas.
Alternativamente, puedes seleccionar:
“Consumidor”: Para aplicaciones que consumen datos de Facebook.
“Empresa”: Para herramientas internas de empresa.
“Gaming”: Para aplicaciones de juegos.
Configurar Detalles de la Aplicación
En el campo “Nombre de la aplicación”, escribir un nombre descriptivo (ej: “Analizador de Grafos Académico”).
Propósito de la aplicación: Describir claramente el caso de uso (ej: “Análisis académico de redes sociales”).
Correo de contacto: Verificar que el correo de contacto sea correcto.
Categoría de la aplicación: Seleccionar la categoría más apropiada.
Crear y Configurar
Hacer clic en “Crear aplicación”. Se podría solicitar la contraseña de Facebook por seguridad.
Una vez creada, se abrirá el panel de control de la aplicación.
3Generar y configurar el token de acceso de usuario¶
Este es el paso más importante: obtener la “llave” para acceder a los datos de la Graph API.
Abrir el Explorador de la API Graph
En el menú lateral izquierdo del panel de la aplicación, navegar a Herramientas > Explorador de la API Graph.
Configurar la Solicitud del Token
En la parte superior derecha de la pantalla, verificar los siguientes campos:
Aplicación de Meta: Asegurarse de que esté seleccionada la aplicación recién creada.
Usuario o página: Confirmar que esté elegida la opción “Identificador de usuario”.
Versión de API: Seleccionar la versión más reciente (ej: v18.0 o superior).
Configurar Permisos Necesarios
Hacer clic en la pestaña “Permisos”.
Se desplegará una lista de categorías de permisos:
Permisos básicos recomendados:
user_likes: Para leer páginas que le han gustado al usuario.user_posts: Para acceder a las publicaciones del usuario.user_friends: Para obtener la lista de amigos (limitado).email: Para obtener el correo electrónico del usuario.
Generar el Token de Acceso
Hacer clic en el botón azul “Generate Access Token”.
Aparecerá una ventana emergente de Facebook solicitando confirmar los permisos. Aceptar para continuar.
El sistema generará un Token de Acceso de Usuario de corta duración (1-2 horas).
Copiar y Extender el Token
El campo “Identificador de acceso” contendrá una larga cadena de caracteres.
Copiar inmediatamente el token haciendo clic en el icono de copiar.
4Explorar la Graph API con consultas útiles¶
El Explorador de Graph API permite probar diferentes consultas antes de implementarlas en código.
4.1Consultas básicas de usuario¶
Información del Usuario Actual
/me?fields=id,name,email,birthday,locationPáginas que le Gustan al Usuario
/me/likes?fields=name,category,fan_count,websitePublicaciones del Usuario
/me/posts?fields=message,created_time,likes.summary(true),comments.summary(true)
4.2Consultas para análisis de redes¶
Lista de Amigos (limitada)
/me/friends?fields=name,idInformación de una Página Específica
/{page-id}?fields=name,fan_count,category,website,about,locationPublicaciones de una Página Pública
/{page-id}/posts?fields=message,created_time,likes.summary(true),shares.summary(true)
4.3Consultas avanzadas para investigación¶
Eventos Públicos
/search?type=event&q=tecnología&fields=name,description,start_time,placeLugares Cercanos
/search?type=place¢er=lat,lng&distance=1000&fields=name,location,checkinsAnálisis de Engagement
/{post-id}?fields=reactions.summary(total_count).limit(0),comments.summary(total_count).limit(0),shares.summary(total_count).limit(0)
5Configurar permisos avanzados y revisión de aplicación¶
Para acceder a datos más sensibles, Meta requiere un proceso de revisión.
Permisos que Requieren Revisión
user_posts: Publicaciones del usuariouser_photos: Fotos del usuariomanage_pages: Gestión de páginaspublish_pages: Publicar en páginas
Proceso de Revisión de Aplicación
Ir a Revisión de aplicación en el panel lateral.
Seleccionar los permisos necesarios y proporcionar:
Justificación detallada del uso.
Capturas de pantalla de la funcionalidad.
Video demostración de cómo se usan los datos.
Configurar Webhook (Opcional)
Para recibir actualizaciones en tiempo real:
Ir a Productos > Webhooks.
Configurar URL de endpoint y eventos de interés.
6Tipos de tokens y gestión de autenticación¶
Meta maneja diferentes tipos de tokens según el caso de uso:
6.1Token de acceso de usuario¶
Duración: 1-2 horas por defecto
Uso: Acceso a datos del usuario autenticado
Extensión: Puede extenderse a 60 días
6.2Token de acceso de página¶
Duración: No expira (mientras la aplicación tenga permisos)
Uso: Gestión y publicación en páginas
Obtención: A través del token de usuario con permisos
manage_pages
6.3Token de aplicación¶
Duración: No expira
Uso: Acceso a datos públicos y gestión de aplicación
Formato:
{app-id}|{app-secret}
6.4Extender la duración del token¶
# Extender token de usuario (60 días)
curl -i -X GET "https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={app-id}&client_secret={app-secret}&fb_exchange_token={short-token}"7Probar las credenciales y conectividad¶
Una vez obtenido el token, es importante verificar que funciona correctamente.
Verificar Token con curl
# Verificar información del usuario curl -i -X GET "https://graph.facebook.com/me?access_token={your-token}" # Verificar páginas que le gustan curl -i -X GET "https://graph.facebook.com/me/likes?access_token={your-token}"Usar el Debugger de Tokens
Ir a Facebook Debugger
Pegar el token para verificar:
Validez y expiración
Permisos otorgados
ID de aplicación y usuario
Verificar con Python
import requests token = "YOUR_ACCESS_TOKEN" response = requests.get( f"https://graph.facebook.com/me?access_token={token}", timeout=30 ) if response.status_code == 200: print("✓ Token válido:", response.json()) else: print("✗ Error:", response.text)
8Limitaciones y restricciones actuales¶
Es crucial entender las limitaciones de la Graph API tras los cambios de privacidad.
8.1Restricciones de datos de usuario¶
Solo datos propios: Acceso limitado a datos del usuario autenticado
Amigos limitados: Solo amigos que también usan la aplicación
Revisión obligatoria: Muchos permisos requieren proceso de revisión
Rate limiting: Límites estrictos en número de llamadas por hora
8.2Datos públicos disponibles¶
Páginas públicas: Información básica y publicaciones públicas
Eventos públicos: Eventos marcados como públicos
Lugares: Información de ubicaciones y check-ins públicos
Grupos públicos: Contenido de grupos públicos (limitado)
8.3Rate limits y cuotas¶
200 llamadas por hora por usuario para aplicaciones en desarrollo
Límites más altos para aplicaciones verificadas
Throttling automático cuando se exceden los límites
9Consideraciones de seguridad¶
9.1Protección de credenciales¶
Nunca hardcodear tokens en el código fuente
Usar variables de entorno para almacenar credenciales
Implementar renovación automática de tokens
Monitorear el uso de tokens en el panel de desarrollador
9.2Ejemplo de configuración segura¶
import os
from dotenv import load_dotenv
# Cargar variables de entorno
load_dotenv()
# Obtener credenciales de forma segura
FACEBOOK_ACCESS_TOKEN = os.getenv("FACEBOOK_ACCESS_TOKEN")
FACEBOOK_APP_ID = os.getenv("FACEBOOK_APP_ID")
FACEBOOK_APP_SECRET = os.getenv("FACEBOOK_APP_SECRET")
# Verificar que las credenciales están disponibles
if not all([FACEBOOK_ACCESS_TOKEN, FACEBOOK_APP_ID, FACEBOOK_APP_SECRET]):
raise ValueError("Faltan credenciales de Facebook en variables de entorno")9.3Archivo .env (ejemplo)¶
# Credenciales de Facebook
FACEBOOK_ACCESS_TOKEN=your_user_access_token_here
FACEBOOK_APP_ID=your_app_id_here
FACEBOOK_APP_SECRET=your_app_secret_here
# Configuración adicional
FACEBOOK_API_VERSION=v18.0
FACEBOOK_RATE_LIMIT_DELAY=19.4Mejores prácticas de seguridad¶
Rotación de tokens: Renovar tokens periódicamente
Monitoreo de uso: Revisar logs de API en el panel de desarrollador
Principio de menor privilegio: Solo solicitar permisos necesarios
Validación de entrada: Sanitizar datos recibidos de la API
HTTPS obligatorio: Usar siempre conexiones seguras
10Documentación y recursos útiles¶
10.1Documentación oficial¶
10.2Librerías de Python recomendadas¶
facebook-sdk: SDK de terceros/comunidad para interactuar con Graph API en Python
requests: Para llamadas HTTP directas (recomendado para máxima compatibilidad)
python-facebook-api: Alternativa moderna mantenida por la comunidad
10.3Herramientas de desarrollo¶
Graph API Explorer: Probar consultas interactivamente
Access Token Debugger: Verificar tokens
Sharing Debugger: Probar compartir contenido
10.4Ejemplos de endpoints útiles¶
Usuario actual:
/mePáginas favoritas:
/me/likesPublicaciones:
/me/postsInformación de página:
/{page-id}Publicaciones de página:
/{page-id}/postsEventos:
/me/events