Conectar cuentas
Tus usuarios conectan sus redes desde tu app, con tu marca. Nunca ven las credenciales ni tú tienes que guardar tokens.
El flujo
Sección titulada «El flujo»- Tu servidor pide
GET /v1/connect/{platform}con elprofileIdy laredirectUrlde tu app. - Rediriges al usuario a la
urlque devuelve. Autoriza la red con su cuenta. - Crier le devuelve a tu
redirectUrlcon el resultado en la query.
curl "https://api.usecrier.com/v1/connect/linkedin?profileId=prf_8f2k4d&redirectUrl=https%3A%2F%2Fapp.acme.com%2Fconectado" \ -H "Authorization: Bearer $CRIER_API_KEY"const res = await fetch('https://api.usecrier.com/v1/connect/linkedin?profileId=prf_8f2k4d&redirectUrl=https%3A%2F%2Fapp.acme.com%2Fconectado', { headers: { Authorization: `Bearer ${process.env.CRIER_API_KEY}`, },});const { data } = await res.json();import os, requests
res = requests.get( "https://api.usecrier.com/v1/connect/linkedin?profileId=prf_8f2k4d&redirectUrl=https%3A%2F%2Fapp.acme.com%2Fconectado", headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},)data = res.json()["data"]Qué llega a tu redirectUrl
Sección titulada «Qué llega a tu redirectUrl»| Resultado | Parámetros |
|---|---|
| Conectada | connected=<platform>, accountId=acc_… y, si la red lo da, username |
| Falta elegir | select=<sessionId> y platform. Mira el paso siguiente. |
| Error | error=<código>, platform, error_message e is_user_fixable (true si el usuario puede reintentarlo) |
Elegir página, organización o tablero
Sección titulada «Elegir página, organización o tablero»Algunas redes conectan algo concreto dentro de la cuenta del usuario. Entonces vuelve con select y tu app enseña la lista para que elija:
| Red | Qué se elige |
|---|---|
| La página | |
| Su perfil personal o una organización que administra | |
| El tablero por defecto | |
| Google Business | La ficha (ubicación) |
| Snapchat | El perfil público |
Lista las opciones
Sección titulada «Lista las opciones»curl "https://api.usecrier.com/v1/connect/sessions/cs_5t2y8u/options" \ -H "Authorization: Bearer $CRIER_API_KEY"const res = await fetch('https://api.usecrier.com/v1/connect/sessions/cs_5t2y8u/options', { headers: { Authorization: `Bearer ${process.env.CRIER_API_KEY}`, },});const { data } = await res.json();import os, requests
res = requests.get( "https://api.usecrier.com/v1/connect/sessions/cs_5t2y8u/options", headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},)data = res.json()["data"]{ "data": { "platform": "facebook", "options": [ { "id": "1042…", "name": "Acme Store", "detail": "@acmestore" }, { "id": "2210…", "name": "Acme Outlet", "detail": "Tienda de ropa" } ] }}Envía la elegida
Sección titulada «Envía la elegida»curl -X POST "https://api.usecrier.com/v1/connect/sessions/cs_5t2y8u/select" \ -H "Authorization: Bearer $CRIER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "optionId": "1042…" }'const res = await fetch('https://api.usecrier.com/v1/connect/sessions/cs_5t2y8u/select', { method: 'POST', headers: { Authorization: `Bearer ${process.env.CRIER_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ "optionId": "1042…" }),});const { data } = await res.json();import os, requests
res = requests.post( "https://api.usecrier.com/v1/connect/sessions/cs_5t2y8u/select", headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"}, json={ "optionId": "1042…" },)data = res.json()["data"]Devuelve la cuenta conectada (201). La sesión caduca a la hora.
Redes disponibles
Sección titulada «Redes disponibles»instagram, facebook, tiktok, youtube, linkedin, x, threads, bluesky, pinterest, reddit, google-business, telegram, discord y snapchat.
Listar y vigilar cuentas
Sección titulada «Listar y vigilar cuentas»curl "https://api.usecrier.com/v1/accounts?profileId=prf_8f2k4d" \ -H "Authorization: Bearer $CRIER_API_KEY"const res = await fetch('https://api.usecrier.com/v1/accounts?profileId=prf_8f2k4d', { headers: { Authorization: `Bearer ${process.env.CRIER_API_KEY}`, },});const { data } = await res.json();import os, requests
res = requests.get( "https://api.usecrier.com/v1/accounts?profileId=prf_8f2k4d", headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},)data = res.json()["data"]Cada cuenta tiene un status: active, needs_reconnection (el token caducó o el usuario quitó permisos) o disconnected. Para comprobar en el momento si pueden publicar, usa GET /v1/accounts/health. Si una cuenta pide reconexión, repite el flujo con la misma red y perfil.
© 2026 Crier by TWOFACES ·usecrier.com ·Panel ·soporte@twofacesco.com