- Add User model and authentication system with JWT cookies - Implement login/logout routes and protected dashboard - Add Alembic database migration configuration - Add create_admin.py script for initial user setup - Make ContentGenerator and ImageGenerator lazy-initialized - Add comprehensive API keys setup documentation - Fix startup errors when services unavailable Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
8.7 KiB
Guía de Configuración de API Keys
Esta guía detalla el proceso para obtener las credenciales necesarias para cada plataforma.
Tabla de Contenidos
- X (Twitter) Developer
- Meta Developer (Facebook, Instagram, Threads)
- DeepSeek API
- Configuración en el Sistema
X (Twitter) Developer
Paso 1: Crear cuenta de desarrollador
- Visita developer.twitter.com
- Inicia sesión con tu cuenta de X/Twitter
- Haz clic en "Sign up for Free Account" o "Apply for access"
Paso 2: Crear un Proyecto y App
- En el Dashboard, ve a Projects & Apps > Overview
- Crea un nuevo proyecto:
- Nombre:
Consultoria-AS-Social-Automation - Caso de uso:
Making a botoBuilding tools for Twitter users
- Nombre:
- Dentro del proyecto, crea una App:
- Nombre:
social-media-automation
- Nombre:
Paso 3: Configurar permisos
- En la configuración de la App, ve a User authentication settings
- Configura:
- App permissions: Read and Write
- Type of App: Web App, Automated App or Bot
- Callback URL:
https://tu-dominio.com/callback(ohttp://localhost:8000/callbackpara desarrollo) - Website URL:
https://consultoria-as.com
Paso 4: Obtener credenciales
En la sección Keys and Tokens, genera y guarda:
| Credencial | Variable de Entorno |
|---|---|
| API Key | TWITTER_API_KEY |
| API Key Secret | TWITTER_API_SECRET |
| Access Token | TWITTER_ACCESS_TOKEN |
| Access Token Secret | TWITTER_ACCESS_TOKEN_SECRET |
| Bearer Token | TWITTER_BEARER_TOKEN |
Importante: El plan gratuito permite 1,500 tweets/mes. Para más volumen, considera el plan Basic ($100/mes) con 3,000 tweets/mes.
Meta Developer
Meta maneja Facebook, Instagram y Threads desde el mismo portal de desarrolladores.
Paso 1: Crear cuenta de desarrollador
- Visita developers.facebook.com
- Inicia sesión con tu cuenta de Facebook
- Acepta los términos de desarrollador
Paso 2: Crear una App
- Ve a My Apps > Create App
- Selecciona tipo de app: Business
- Configura:
- Nombre:
Consultoria-AS-Social-Automation - Contacto: tu email
- Business Account: selecciona o crea una
- Nombre:
Paso 3: Agregar productos
En el dashboard de tu app, agrega estos productos:
Para Facebook Pages:
- Añade el producto Facebook Login for Business
- Añade Pages API
- Configura los permisos:
pages_manage_postspages_read_engagementpages_show_list
Para Instagram:
- Añade el producto Instagram Graph API
- Permisos necesarios:
instagram_basicinstagram_content_publishinstagram_manage_commentsinstagram_manage_insights
Para Threads:
- Añade el producto Threads API
- Permisos necesarios:
threads_basicthreads_content_publishthreads_manage_replies
Paso 4: Conectar cuentas
-
Ve a Settings > Basic para obtener:
- App ID →
META_APP_ID - App Secret →
META_APP_SECRET
- App ID →
-
Para Facebook Page:
- Ve a Tools > Graph API Explorer
- Selecciona tu app y página
- Genera un Page Access Token con los permisos necesarios
- Convierte a Long-Lived Token (60 días)
-
Para Instagram:
- La cuenta de Instagram debe estar conectada a una Facebook Page
- Ve a Graph API Explorer
- Obtén el Instagram Business Account ID
- Genera Access Token con permisos de Instagram
Paso 5: Obtener tokens de larga duración
# Convertir token de corta a larga duración (60 días)
curl -X GET "https://graph.facebook.com/v18.0/oauth/access_token?grant_type=fb_exchange_token&client_id={APP_ID}&client_secret={APP_SECRET}&fb_exchange_token={SHORT_LIVED_TOKEN}"
| Credencial | Variable de Entorno |
|---|---|
| App ID | META_APP_ID |
| App Secret | META_APP_SECRET |
| Page Access Token | FACEBOOK_PAGE_ACCESS_TOKEN |
| Page ID | FACEBOOK_PAGE_ID |
| Instagram User ID | INSTAGRAM_USER_ID |
| Threads User ID | THREADS_USER_ID |
Nota: Los tokens de Meta expiran. Implementa un sistema de refresh o regenera manualmente cada 60 días.
DeepSeek API
Paso 1: Crear cuenta
- Visita platform.deepseek.com
- Regístrate con email o Google
- Verifica tu cuenta
Paso 2: Obtener API Key
- Ve a API Keys en el dashboard
- Crea una nueva API Key
- Copia y guarda la key (solo se muestra una vez)
Paso 3: Agregar créditos
- Ve a Billing > Top Up
- Agrega créditos (mínimo $5 USD recomendado para empezar)
- Los precios son muy económicos (~$0.14/1M tokens input, ~$0.28/1M tokens output)
| Credencial | Variable de Entorno |
|---|---|
| API Key | DEEPSEEK_API_KEY |
| Base URL | https://api.deepseek.com (ya configurado por defecto) |
Configuración en el Sistema
Archivo .env
Crea el archivo .env en la raíz del proyecto:
# ==============================================
# BASE DE DATOS
# ==============================================
DATABASE_URL=postgresql://postgres:tu_password@localhost:5432/social_automation
REDIS_URL=redis://localhost:6379/0
# ==============================================
# SEGURIDAD
# ==============================================
SECRET_KEY=genera-una-clave-segura-de-32-caracteres-minimo
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
# ==============================================
# X (TWITTER) API
# ==============================================
TWITTER_API_KEY=tu_api_key
TWITTER_API_SECRET=tu_api_secret
TWITTER_ACCESS_TOKEN=tu_access_token
TWITTER_ACCESS_TOKEN_SECRET=tu_access_token_secret
TWITTER_BEARER_TOKEN=tu_bearer_token
# ==============================================
# META APIs (Facebook, Instagram, Threads)
# ==============================================
META_APP_ID=tu_app_id
META_APP_SECRET=tu_app_secret
# Facebook
FACEBOOK_PAGE_ACCESS_TOKEN=tu_page_access_token
FACEBOOK_PAGE_ID=tu_page_id
# Instagram
INSTAGRAM_USER_ID=tu_instagram_user_id
INSTAGRAM_ACCESS_TOKEN=tu_instagram_access_token
# Threads
THREADS_USER_ID=tu_threads_user_id
THREADS_ACCESS_TOKEN=tu_threads_access_token
# ==============================================
# DEEPSEEK API (Generación de contenido)
# ==============================================
DEEPSEEK_API_KEY=tu_deepseek_api_key
DEEPSEEK_BASE_URL=https://api.deepseek.com
# ==============================================
# CONFIGURACIÓN DE NEGOCIO
# ==============================================
BUSINESS_NAME=Consultoría AS
BUSINESS_DESCRIPTION=Consultoría tecnológica y venta de equipos de cómputo e impresión 3D
BUSINESS_WEBSITE=https://consultoria-as.com
BUSINESS_LOCATION=Tijuana, México
Generar SECRET_KEY
# Usando Python
python -c "import secrets; print(secrets.token_urlsafe(32))"
# Usando OpenSSL
openssl rand -base64 32
Verificar configuración
Después de configurar el .env, verifica que todo esté correcto:
# Activar entorno virtual
source venv/bin/activate
# Verificar que las variables se cargan
python -c "from app.core.config import settings; print('DB:', settings.DATABASE_URL[:20] + '...'); print('DeepSeek:', 'OK' if settings.DEEPSEEK_API_KEY else 'NO CONFIGURADO')"
Límites de API y Costos Estimados
X (Twitter)
| Plan | Tweets/mes | Costo |
|---|---|---|
| Free | 1,500 | $0 |
| Basic | 3,000 | $100/mes |
| Pro | 300,000 | $5,000/mes |
Meta (Facebook/Instagram/Threads)
- Sin límite de publicaciones para cuentas propias
- Rate limits: ~200 llamadas/hora por usuario
- Costo: Gratuito
DeepSeek
| Modelo | Input | Output |
|---|---|---|
| deepseek-chat | $0.14/1M tokens | $0.28/1M tokens |
| deepseek-coder | $0.14/1M tokens | $0.28/1M tokens |
Estimación mensual: ~$5-10 USD para 300 posts/mes
Solución de Problemas
Error: "Invalid API Key" en X
- Verifica que copiaste la key completa
- Regenera las credenciales si es necesario
- Asegúrate de que la app tiene permisos de escritura
Error: "Token expired" en Meta
- Los tokens de página expiran cada 60 días
- Usa el Graph API Explorer para generar uno nuevo
- Considera implementar refresh automático
Error: "Insufficient balance" en DeepSeek
- Agrega más créditos en el dashboard
- Verifica el consumo en la sección de billing
Próximos Pasos
- Configura las credenciales en
.env - Ejecuta
docker-compose up -dpara iniciar servicios - Crea el usuario admin:
python scripts/create_admin.py - Accede al dashboard:
http://localhost:8000/dashboard - Configura el calendario de contenido
Para más información, consulta la documentación principal.