La respuesta corta
Para que tu software publique en LinkedIn en nombre de un usuario, primero necesitas una app gratuita en LinkedIn Developers (linkedin.com/developers/apps). Es un registro de 10-15 minutos: identifica tu software, define qué permisos pide (leer perfil, publicar) y te da un Client ID y un Client Secret. La app es tuya, no cuesta nada y sirve para todas las cuentas que quieran conectar.
Qué vas a conseguir al terminar
- Client ID y Client Secret de tu app.
- La URL de callback donde LinkedIn devuelve al usuario tras autorizar.
- Permisos OAuth: perfil, email y publicación en el perfil personal (w_member_social).
- Tokens que caducan a los 60 días pero se renuevan solos con el refresh token (tu plataforma lo hace automáticamente).
Requisito previo que nadie te avisa: una Página de empresa
LinkedIn obliga a asociar la app a una Página de empresa (Company Page). Si tu empresa ya tiene una, perfecto. Si no, créala antes en linkedin.com/company/setup/new (es gratuita y toma 5 minutos). Sin página de empresa, el botón "Create app" no te dejará continuar. Es el obstáculo número uno.
Paso a paso: crear la app en LinkedIn
1. Entra en LinkedIn Developers
Abre https://www.linkedin.com/developers/apps e inicia sesión con tu cuenta de LinkedIn.
2. Pulsa "Create app"
Rellena:
- App name: el nombre de tu marca (es lo que verá el usuario al autorizar).
- LinkedIn Page: selecciona tu página de empresa (la del paso anterior).
- App logo: sube el logo de tu empresa (se muestra en la pantalla de autorización).
- Privacy policy URL: la URL de tu política de privacidad.
Crea la app.
3. Activa los productos correctos
Dentro de la app, pestaña Products, activa:
- Share on LinkedIn — habilita la publicación en el perfil (la API de posts).
- Sign In with LinkedIn using OpenID Connect — habilita el login y la lectura de perfil/email con los scopes modernos.
4. Configura la URL de callback
Pestaña Auth → Authorized redirect URLs for your app → añade la URL de callback de tu plataforma. En marketingOS: https://solutionsai.es/marketingOS/api/social.php?action=callback. Guarda.
5. Marca los scopes
En la misma pestaña Auth, bajo OAuth 2.0 scopes, marca:
openidprofileemailw_member_social
Guarda de nuevo.
6. Copia las credenciales
- Client ID: aparece arriba, bajo el nombre de la app.
- Client Secret: pestaña Auth → Client Secret (te lo muestra una vez; guárdalo ya).
7. Pégalas en tu plataforma
En marketingOS: Ajustes → Redes sociales → LinkedIn → pega Client ID y Client Secret → guardar. El sistema las cifra y las guarda en el servidor.
8. Conecta la primera cuenta
El usuario pulsa "Conectar LinkedIn", autoriza una vez, y la plataforma guarda su token (con renovación automática cada 60 días). A partir de ahí, publica solo.
Los permisos, explicados
- openid + profile + email — identifican al usuario que autoriza (nombre, foto, email). Base del OAuth moderno de LinkedIn.
- w_member_social — el permiso de oro: permite crear publicaciones en el perfil personal vía API. Sin él, tu app solo puede leer.
No pidas más. Los permisos de mensajería o de páginas (w_organization_social) solo si realmente los vas a usar; cada scope extra retrasa las posibles revisiones.
Caducidad de tokens: lo que hay que saber
El access token de LinkedIn dura 60 días. El refresh token dura mucho más y sirve para obtener un access nuevo sin molestar al usuario. Una plataforma bien hecha (como marketingOS) renueva solo: guarda el refresh cifrado, detecta la caducidad 5 minutos antes y pide uno nuevo. Si tu software no renueva, al cabo de dos meses la conexión "se cae" y el usuario debe reconectar: señal de plataforma mal construida.
Verificación de la página de empresa
A veces LinkedIn pide verificar la página de empresa asociada (especialmente para apps que publican mucho o piden permisos de organización). Si te aparece el aviso, sigue el enlace de verificación desde el panel de la página: te pedirá un documento que acredite la empresa (extracto bancario, escritura, factura con el nombre). Es un trámite de unos días y lo haces una vez.
Buenas prácticas profesionales de seguridad
- Client Secret solo en servidor, cifrado. Nunca en JavaScript del navegador.
- Tokens cifrados en base de datos, con renovación automática y revocación a un clic.
- Scopes mínimos: los cuatro de esta guía.
- Renovación con margen: renueva 5 minutos antes de la caducidad, no después del fallo.
- Desconexión limpia: cuando un usuario desconecta su red, borra tokens Y refresh tokens; no basta con ocultar el botón.
Errores habituales (y su arreglo)
- "The app is not approved to request w_member_social" al autorizar: falta activar el producto "Share on LinkedIn" (paso 3) o falta marcar el scope en Auth.
- El botón de conectar no hace nada: la URL de callback no coincide exactamente. Copia la que te da tu plataforma, carácter a carácter (incluido https://).
- La conexión funciona dos meses y luego falla: el software no renueva tokens. Exige renovación automática.
- "Company page required": no tienes página de empresa o la seleccionada no te pertenece.
Preguntas frecuentes
¿Crear la app cuesta dinero?
No. LinkedIn Developers es gratuito. La app es un activo tuyo.
¿Sirve una sola app para todos mis clientes?
Sí. Es el patrón estándar: tú creas la app una vez y cada cliente autoriza su propia cuenta de LinkedIn con un clic. Tu plataforma guarda el token de cada uno por separado.
¿Puedo publicar en páginas de empresa (no en perfiles personales)?
Sí, pero requiere el permiso w_organization_social y que la página te dé el rol de creador de contenido. Para perfiles personales basta w_member_social.
¿Qué pasa si el usuario cambia su contraseña de LinkedIn?
Nada. Los tokens de API son independientes de la contraseña. Solo deja de funcionar si el usuario revoca la app manualmente (Configuración → Partners y servicios externos).
¿El Client Secret se puede recuperar si lo pierdo?
No se muestra dos veces; se regenera. Genera uno nuevo en la pestaña Auth y actualízalo en tu plataforma.
El resumen en una frase
Crear la app de LinkedIn es un trámite gratuito de un cuarto de hora con un único requisito previo (tener página de empresa): activas "Share on LinkedIn", marcas cuatro scopes, copias Client ID y Secret, y tu plataforma ya puede publicar en el nombre de cualquier cuenta que autorice.