OdooWiki OCA HUB

Social Media Linkedin

social_media_linkedin folder_open OCA/social open_in_new
Social Network Licencia: AGPL-3

Este módulo publica en las páginas de empresa de LinkedIn que administra un usuario de Odoo, y guarda las cifras diarias de esas páginas.

Todo lo que le pide a LinkedIn cuesta un número fijo de llamadas por cuenta o por publicación, así que lo que cuesta no cambia si una página publicó una vez o diez mil veces. Volver a leer lo que la página ya publicó --- importar las publicaciones, sus comentarios y sus reacciones --- crece con ese historial y vive en Social Media LinkedIn Sync, que se instala por su cuenta en cuanto Social Media Sync está presente.

Características principales:

  • Integración de las páginas de empresa (organizaciones) de LinkedIn que administra el usuario; los perfiles personales no son compatibles.
  • Creación de publicaciones, con imágenes o un vídeo: LinkedIn publica o las imágenes o el vídeo, nunca ambos.
  • Estadísticas diarias de la página: las cifras que LinkedIn informa por día se escriben como una serie temporal, con informes y vistas nativas de gráfico y pivote sobre ellas. Cuesta un número fijo de llamadas por cuenta, decidido por la amplitud de la ventana solicitada y no por lo que publicó la página: una llamada para la actualización de los últimos días, un puñado para todo el periodo que informa LinkedIn, porque las cifras solicitadas son las de toda la organización y los URN de las publicaciones nunca entran en la consulta.
  • Lo que LinkedIn no publicará, mostrado en la publicación mientras se escribe. El mensaje se comprueba contra 3000 caracteres, y los medios contra 20 imágenes de como máximo 10 MB cada una en JPG, PNG o GIF, y un vídeo de como máximo 500 MB en MP4. Una publicación que lleva un vídeo se publica sin sus imágenes, así que con un vídeo no se aplica ninguna de las reglas de imágenes y se advierte a la publicación que solo sale el vídeo. Las mismas comprobaciones rechazan la publicación si la publicación llega a ella de todos modos, a través de una importación o una llamada RPC.

Cuenta de estadísticas

  • El icono del ojo: Número total de visualizaciones, que puede incluir múltiples visualizaciones del mismo usuario.
  • El icono de la mano: las interacciones (clics, me gusta, comentarios y veces compartido) que la página acumuló a lo largo de los días de la serie.
  • El icono de la estrella: el engagement de la cuenta, sus interacciones sobre sus impresiones, mostrado como un porcentaje. El engagement que LinkedIn informa por día se guarda en cada fila de la serie temporal y se lee en las vistas de gráfico y pivote; nunca se promedia en la tarjeta.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 17.0

Conecta las páginas de empresa de LinkedIn con Odoo para que los usuarios puedan publicar entradas con imágenes o un vídeo y mantener estadísticas diarias de la página. Los perfiles personales de LinkedIn no son compatibles.

Este módulo añade LinkedIn como canal de redes sociales en Odoo. Desde las pantallas de cuentas sociales, un usuario con derechos de administrador introduce el Client ID y el Client Secret de una aplicación de LinkedIn y ejecuta el asistente de asociación, que autoriza la cuenta e importa cada página de empresa (organización) que el usuario administra, con su nombre, vanity name y logotipo. Los perfiles personales no son compatibles.

Una vez conectada, la tarjeta de la cuenta muestra el identificador de la página de LinkedIn y enlaces al panel de la página. Los usuarios pueden crear y publicar entradas desde Odoo, con texto y bien imágenes o un vídeo; LinkedIn nunca acepta ambos en la misma entrada, por lo que las imágenes se ignoran cuando se adjunta un vídeo. Los vídeos se suben por partes y Odoo espera hasta que LinkedIn termina de procesarlos antes de publicar. Los errores y advertencias de publicación se notifican en la entrada.

Reglas de negocio y comportamientos automáticos: - Las mismas credenciales de aplicación de LinkedIn no pueden ser utilizadas por dos cuentas, incluidas las archivadas. - Los tokens de acceso se renuevan automáticamente antes de que caduquen, y un token próximo a caducar se comprueba con LinkedIn; si ya no es válido, se abre el asistente de actualización. - Se almacenan los scopes que LinkedIn concedió, y un mensaje claro pide al usuario que autorice la cuenta de nuevo cuando falta un permiso necesario. - Las cifras diarias notificadas por LinkedIn se escriben como una serie temporal, y un botón reconstruye todo el historial de estadísticas de una cuenta.

El módulo extiende social.account, social.media, social.post, social.post.account y el asistente de asociación de cuentas.

Modelos y campos (5)
  • social.post · amplía un modelo existente
  • social.media · amplía un modelo existentemedia_type
  • social.account · amplía un modelo existentelinkedin_secret (Client Secret), linkedin_client_id (Client ID), linkedin_account_id, linkedin_granted_scopes (Granted Scopes), refresh_token_expires_in (Expire Refresh Token)
  • social.post.account · amplía un modelo existente
  • wizard.social.account · amplía un modelo existentelinkedin_client (Client ID), linkedin_secret (Client Secret)

Texto generado por IA (DeepSeek) al leer el código de la versión 17.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. El módulo es muy grande y solo se ha leído una parte del código. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 1 confirmada, 8 sin información de 9 versiones.

terminal Instalación y uso

Documentación de OCA · Odoo 17.0

Para configurar este módulo, necesita:

Tenga en cuenta que debe tener una cuenta de desarrollador. Los pasos necesarios para usarla se definen a continuación:

Antes de crear esta cuenta de desarrollador, debe tener una empresa asociada en su cuenta de LinkedIn y ser administrador.

Solo se pueden vincular páginas de empresa (organizaciones), nunca perfiles personales: una publicación siempre se publica en nombre de la organización. Odoo solo lee las organizaciones en las que el miembro que autoriza es un ADMINISTRATOR cuya invitación ya ha sido aceptada (estado APPROVED). Si su rol aún está pendiente, LinkedIn no devuelve la organización y el asistente finaliza sin crear ninguna cuenta.

El conector no necesita ninguna biblioteca Python adicional: utiliza requests, que ya viene incluida con Odoo, por lo que no hay nada que instalar en el servidor además del propio módulo.

  • Vaya a https://developer.linkedin.com/
  • Cree una nueva Developer App con el botón Create app.
  • Rellene los campos solicitados. En el campo Privacy Policy URL, copie la URL de su empresa.
  • Una vez creada la app, vaya al menú My Apps y verá la app recién creada; selecciónela.
  • Dentro de la app, en la pestaña Settings, verifique su empresa. Verá un botón que dice Verify. Haga clic en él y, en la ventana que aparece en la esquina inferior izquierda, haga clic en el botón Generate URL. Copie la URL generada en su navegador y acepte.
  • A continuación, vaya a la pestaña Products y solicite acceso a los productos que otorgan los scopes que piden los módulos instalados:
  • Community Management API, que otorga los tres scopes que necesita este conector: rw_organization_admin, w_organization_social y r_organization_social. No es self-serve: LinkedIn revisa la solicitud y, hasta que se apruebe, no se puede asociar ninguna cuenta en absoluto — la pantalla de consentimiento es todo o nada, por lo que un scope que la App no tenga otorgado hace fallar toda la autorización, no solo las llamadas que lo necesitan.
  • Advertising API, solo si Social Media Advertising LinkedIn está instalado, para r_ads, rw_ads y r_ads_reporting. Tampoco es self-serve. Tenga en cuenta que algunos productos requieren que rellene un formulario; debe hacerlo, de lo contrario, los scopes necesarios para el uso básico de su cuenta no se habilitarán. Los productos, los scopes que otorgan y las versiones de la API se describen en la documentación de LinkedIn Marketing API y en su guía de versionado.
  • Después de solicitar los Products mencionados, vaya a la pestaña Auth y verá todos los scopes habilitados en la parte inferior. Cada módulo pide los permisos que consumen sus propias llamadas, por lo que lo que se solicita depende de lo que esté instalado: | Módulo | Scopes | Qué los necesita | | --- | --- | --- | | Social Media LinkedIn | rw_organization_admin | Listar las organizaciones que administra el miembro, y las cifras de la página | | | w_organization_social | Publicar y eliminar una publicación, y subir sus imágenes y vídeos | | | r_organization_social | Leer una publicación de vuelta, que es lo que distingue una eliminada en LinkedIn de una todavía en línea | | Social Media LinkedIn Sync | r_organization_social | Leer el feed de la página, los comentarios y las reacciones | | Social Media Advertising LinkedIn | r_ads, rw_ads, r_ads_reporting | Las cuentas publicitarias, sus campañas y sus cifras | Todos ellos tienen que aparecer habilitados en la pestaña Auth de su App; si falta uno, LinkedIn rechaza toda la autorización y hay que solicitar el Product que lo otorga. LinkedIn tampoco deja que el miembro elija parte de ellos: la pantalla de consentimiento es todo o nada, por lo que no se solicita nada "por si acaso". Lo que LinkedIn otorgó se almacena en la cuenta, en el campo Granted Scopes de su pestaña Configuration, por lo que un error de permisos puede leerse ahí en lugar de en los logs. Ese mismo campo es lo que piden las siguientes autorizaciones, y puede editarse:
  • Habilite el nuevo Product en su LinkedIn App y espere a que se apruebe.
  • Añada los scopes que otorga al campo Granted Scopes de la cuenta.
  • Abra Update account, marque Update keys y autorice de nuevo en LinkedIn. Editar el campo por sí solo no cambia nada, y marcar solo Update token tampoco es suficiente: refrescar un token conserva los scopes que se le otorgaron, solo una nueva autorización puede pedir más. Vaya directamente a Update account después de editar el campo, porque Validate token y cualquier refresco de token lo reescriben con los scopes que informa LinkedIn, y las adiciones escritas a mano se pierden. Tenga en cuenta que un scope que los Products de su App no otorgan hace que LinkedIn rechace toda la autorización, y la cuenta no puede autorizarse de nuevo hasta que se elimine del campo. Cada llamada a la API REST versionada lleva las cabeceras LinkedIn-Version: 202607 y X-Restli-Protocol-Version: 2.0.0. Las llamadas OAuth de la asociación — el intercambio de código por token y la introspección del token — y la descarga del logo de la organización no. LinkedIn retira cada versión de la API aproximadamente un año después de publicarla, por lo que el módulo tiene que actualizarse periódicamente: una vez que la versión ya no es compatible, LinkedIn responde a cada petición con un error de versión.
  • En la parte superior de la pestaña mencionada, verá la información de Client ID y Primary Client Secret.
  • Configure los puntos de acceso para los que desea usar la cuenta. Siga estos pasos:
  • Vaya a Settings > Technical > Parameters > System Parameters.
  • Busque web.base.url
  • Copie la URL base y concaténela con el endpoint. Luego, en su LinkedIn Developer Account, en la pestaña Authentication, en la sección Authorized Redirect URLs for Your App, añada un nuevo elemento. * Ejemplo: web.base.url: http://192.168.1.7:8017 endpoint: /linkedin/callback linkedin_url: http://192.168.1.7:8017/linkedin/callback

Registro del Client ID y el Client Secret. Integración de una cuenta de usuario.

  • Vaya a Social Media > Configuration > Social Media
  • Haga clic en el botón Associate Account para la red social deseada.
  • Se abrirá un asistente para que añada el Client ID y el Client Secret obtenidos de su cuenta de desarrollador.
  • Al hacer clic en el botón Associate aquí, se le llevará a una página de autenticación de LinkedIn. Una vez que valide su información, LinkedIn le devuelve a Odoo: si la asociación tuvo éxito, aterriza directamente en el Social Media Dashboard con una notificación de éxito, y si falló, vuelve a la pantalla inicial con la notificación del error.
  • Una vez que haya completado estos pasos y todo funcione correctamente, puede ver su cuenta en Social Media > Configuration > Accounts
  • Después de asociar la cuenta, se leen las cifras diarias de la página y se rellena la tarjeta del dashboard. Importar lo que la página ya publicó necesita Social Media LinkedIn Sync.
  • Tenga en cuenta que las credenciales de la cuenta (Client ID, Client Secret y tokens) están enmascaradas y solo son visibles para usuarios administradores.
  • El flujo de autorización está vinculado a la sesión que lo inició: el token de estado enviado a LinkedIn solo funciona para el usuario que abrió el asistente, y se descarta una vez que el flujo termina, por lo que la misma autorización no puede reproducirse. Si el estado no coincide, la asociación se rechaza con Invalid OAuth state token. Please restart the account association process. El flujo en sí es el descrito en el authorization code flow de LinkedIn.
  • Si la organización de LinkedIn ya está vinculada a una cuenta de otro usuario de Odoo, la asociación se rechaza y no se sobrescribe nada: solo el usuario responsable de la cuenta y el grupo Social Media / Administrator pueden volver a vincularla.
  • Cada cuenta tiene que usar sus propias credenciales: si el Client ID y el Client Secret ya están registrados en otra cuenta, la asociación se rechaza con An account with this information already exists; please also check archived accounts. La comprobación incluye las cuentas archivadas, que conservan sus credenciales, por lo que revise también el filtro Archived antes de intentarlo de nuevo. Para reautorizar una cuenta existente, use su botón Update account en lugar del asistente.

Parámetros del sistema

Aquí no hay que configurar nada para que el conector funcione: cada clave toma por defecto el valor que lleva el código, y solo existe una vez que se escribe a mano en Settings > Technical > Parameters > System Parameters. Se acotan cuando se leen, por lo que un valor fuera de su rango se devuelve a él en lugar de obedecerse.

| Parámetro | Por defecto | Unidad | Límites | | --- | --- | --- | --- | | social_media_linkedin.video_poll_attempts | 30 | sondeos | al menos 1, y como máximo lo que permite el techo de 600 segundos | | social_media_linkedin.video_poll_delay | 2 | segundos entre sondeos | al menos 1 |

Los dos son la espera que necesita LinkedIn para terminar de procesar un vídeo subido antes de que pueda publicarse la publicación, y lo que importa es su producto: es tiempo que la publicación pasa dentro de su propia transacción. Pasado el limit_time_real del despliegue — 120 segundos por defecto, y las acciones programadas lo heredan — el worker se mata con el vídeo ya subido en LinkedIn y nada publicado en Odoo. Por eso el número de sondeos se recorta a lo que permiten 600 segundos con el retardo vigente, y por eso subir la espera para un vídeo largo significa subir también limit_time_real. Un retardo mayor que el propio techo no se recorta: se convierte en una única espera, y configurar uno es pedir que se mate el worker.

Por debajo de sus límites los números dejan de tener sentido en lugar de ser meramente pequeños: cero sondeos no publica nada sin llegar a preguntar nunca a LinkedIn, y un retardo inferior a un segundo convierte la espera en una ráfaga contra una API cuyo rate limit el módulo no gestiona.

Lista de publicaciones generadas desde Odoo.

Solo se muestran las publicaciones generadas usando Odoo.

  • Vaya a Social Media > Posts
  • Abrir una publicación, desde su formulario o desde su tarjeta en el panel, la lee primero en LinkedIn. Una que se eliminó allí se informa como The post does not exist or has been deleted. y se marca como Deleted en el acto, conservando su referencia. Solo un 404 cuenta como eliminación: un rol de página perdido o una aplicación limitada deja la publicación intacta, porque una publicación no desaparece solo porque Odoo no haya podido leerla.

Generar una publicación.

Esta función actúa como plantilla para generar varias publicaciones desde una sola vista, según las cuentas seleccionadas.

  • Vaya a Social Media > Posts > New o Vaya a Social Media > Dashboard > Add Post
  • Rellene los campos obligatorios
  • Cuando se crea la publicación, todas las cuentas de LinkedIn de la compañía activa se seleccionan por defecto en Accounts; elimine las que no quiera usar antes de publicar.
  • Guarde
  • Haga clic en el botón Post
  • LinkedIn publica imágenes o un vídeo, nunca ambos: cuando la publicación lleva un vídeo, sus imágenes se omiten. La vista previa de la publicación lo indica mostrando solo el vídeo, de modo que lo que se previsualiza es lo que LinkedIn recibe, y un banner en el formulario también lo explica.
  • Una publicación comparte las imágenes y el vídeo de su post, por lo que la tarjeta del panel los muestra en cuanto LinkedIn acepta la publicación y no hay que ejecutar nada más. Lo que LinkedIn hizo con cada medio se registra en la publicación, que es lo que permite que una imagen eliminada en LinkedIn desaparezca de la tarjeta mientras la del post permanece; detectar esa eliminación requiere Social Media LinkedIn Sync.

Actualizar token, client ID, client Secret y datos de la organización

  • Vaya a Social Media > Configuration > Accounts
  • Seleccione la cuenta
  • Haga clic en el botón Update account
  • En el asistente que aparece, si no hay ninguna casilla seleccionada y se pulsa el botón Update, el sistema actualizará solo los datos de la organización.
  • Si se selecciona la casilla Update keys, el Client ID actual se propone a los usuarios administradores, los únicos autorizados a leerlo, y el Client Secret debe escribirse de nuevo: el secreto almacenado nunca se envía al navegador. A continuación se realiza de nuevo la autenticación a través de LinkedIn, y las claves solo se escriben en la cuenta una vez que LinkedIn las ha aceptado, de modo que una autorización a medias conserva las credenciales que aún funcionan.
  • Seleccionar la casilla Update token actualizará el token actual.

Validar el token

  • Vaya a Social Media > Configuration > Accounts
  • Seleccione la cuenta y abra la pestaña Configuration
  • Haga clic en el botón Validate token. Siempre pregunta a LinkedIn si el token sigue activo, porque un token puede revocarse allí mucho antes de las fechas de caducidad almacenadas: una notificación confirma que es válido y, si no lo es, el token se renueva. Fuera de la ventana de renovación, la comprobación realizada antes de cada llamada a LinkedIn usa las fechas almacenadas, por lo que no cuesta ninguna petición adicional.

Archivar cuenta de Linkedin

  • Vaya a Social Media > Configuration > Accounts
  • Seleccione la cuenta y elija Archive en el menú Actions del formulario.
  • Tenga en cuenta que todos los datos asociados a esta cuenta se archivarán.
  • Si asocia la misma cuenta de LinkedIn de nuevo más adelante, la cuenta archivada y sus datos relacionados se reactivarán en lugar de crear un duplicado.
  • Una cuenta archivada puede eliminarse permanentemente con el botón Delete permanently, disponible solo para un administrador de redes sociales. Las publicaciones de LinkedIn permanecen en línea, solo se elimina el historial de Odoo.

Desinstalar el módulo

Desinstalar Social Media Linkedin no elimina las cuentas ni su historial de publicaciones:

  • El token de acceso y el token de refresco se borran, de modo que ninguna credencial sobrevive al módulo.
  • Las cuentas de LinkedIn se archivan, junto con sus posts.
  • Los datos específicos de LinkedIn se pierden, porque Odoo elimina las columnas de un módulo desinstalado: el Client ID y el Client Secret de la aplicación.
  • El identificador de cada cuenta y publicación en LinkedIn se conserva, de modo que reinstalar el módulo y asociar la cuenta de nuevo reactiva el historial archivado y lo actualiza, en lugar de importar todo como registros duplicados.

Serie temporal de la cuenta

  • A LinkedIn se le piden sus cifras por día, con el buscador organizationalEntityShareStatistics y timeGranularityType=DAY, y cada bucket que responde se convierte en una fila de Social Media > Statistics. No se inventa nada para los días de los que no informa nada.
  • Justo después de vincular la cuenta, se lee la ventana de reescritura y se solicita a continuación todo el periodo que LinkedIn informa, de modo que la tarjeta del panel se rellena con el año y no solo con los últimos días. No se necesita ningún módulo de sincronización para eso.
  • El buscador responde como máximo 100 buckets diarios por llamada y no pagina, por lo que un periodo más amplio que eso se solicita en varias llamadas, una tras otra, en lugar de volver cortado en el día número cien.
  • El periodo completo se lee solo una vez. Después se omite, porque la ventana de reescritura es lo único que se escribe en cada pasada y una fila anterior a ella solo puede provenir de esa primera lectura. Si falló --LinkedIn rechazó la llamada, el token acababa de emitirse-- el botón Rebuild statistics history del formulario de la cuenta lo solicita de nuevo.
  • La última semana se solicita de nuevo en cada pasada de la comprobación cada dos horas, y mediante el botón Update statistics del formulario de la cuenta. LinkedIn revisa cifras de días ya pasados, por lo que las recientes se reescriben en lugar de darse por definitivas; los días anteriores a esa ventana permanecen como se dejaron.
  • El botón Rebuild statistics history solicita de nuevo a LinkedIn las cifras diarias de la página, hasta donde las informa, y reescribe la serie temporal con ellas. No importa publicaciones: lo que reconstruye es el gráfico de la cuenta. Traer las publicaciones en sí es lo que hace Social Media LinkedIn Sync.
  • Una cuenta cuyas estadísticas LinkedIn rechaza se informa y se omite, y el resto de las cuentas conservan las filas ya escritas para ellas.
  • A la cuenta se le pide su página de organización en su conjunto, lo que incluye lo que se publicó antes de que Odoo gestionara la cuenta o fuera de ella. Por lo tanto, las cifras no son la suma de lo que Odoo importó y no están pensadas para compararse con ello.

Cifras de una publicación

  • Las cifras de las publicaciones de los últimos 30 días se leen de LinkedIn una vez al día, mediante la acción programada Social: Refresh the statistics of the recent publications, y en el acto mediante el botón Update del panel y Update statistics del formulario de la cuenta.
  • Nada recorre el feed para hacerlo: Odoo ya conoce el URN de cada publicación sobre la que pregunta, por lo que una página entera de ellas se responde con como máximo tres llamadas — organizationalEntityShareStatistics una vez para los shares y otra para los posts UGC, y socialActions para los likes y los comentarios de los posts UGC, que LinkedIn documenta como los actualizados.
  • Solo se solicitan los tipos que la página realmente contiene. Las publicaciones que Odoo publica son shares, por lo que una página de ellas cuesta una llamada: el buscador responde sus likes y comentarios dentro del mismo bloque, y socialActions solo se consulta para los posts UGC, que son las publicaciones hechas fuera de Odoo.
  • Esos URN viajan en la cadena de consulta de un buscador que LinkedIn documenta como no paginado, por lo que una página cuyos URN no caben en 4 KB se solicita en tantas llamadas como sean necesarias, unas 95 publicaciones cada una. Eso es lo único que añade una llamada a las tres.
  • Una publicación ausente de la respuesta es una con la que nadie interactuó: el buscador omite las entidades sin actividad alguna, por lo que sus cifras se escriben como ceros y su fecha se lee igualmente.
  • Una publicación eliminada en LinkedIn no deja sin cifras a las demás de la cuenta. LinkedIn rechaza todo el lote con un 4xx cuando una de sus publicaciones ya no existe, por lo que Odoo pregunta entonces a LinkedIn qué publicaciones del lote ya no existen: las que confirma con un 404 se marcan como Deleted, igual que cuando se abre una publicación, y las demás se solicitan una vez más. Si no se confirma ninguna, o la segunda lectura también falla, la cuenta se informa y se omite como cualquier otro rechazo. Un error del lado de LinkedIn (5xx) o un timeout no dice nada sobre las publicaciones y se informa de inmediato.
  • No se necesita ningún permiso nuevo: las cifras de una publicación provienen de organizationalEntityShareStatistics y socialActions, que cubren los scopes ya solicitados cuando se asoció la cuenta, por lo que a una cuenta ya asociada no se le pide que autorice nada de nuevo.
  • Leer las publicaciones que LinkedIn tiene y Odoo no es otro asunto, y permanece en Social Media LinkedIn Sync: eso cuesta una llamada por página del feed.

Tokens de LinkedIn

  • El token de acceso de LinkedIn dura dos meses y su token de refresco un año, como se indica en la documentación de refresh tokens. Dentro de la semana anterior a la fecha de caducidad, y en cada ejecución de la acción programada Social: Checking social media updates y antes de publicar, Odoo pregunta a LinkedIn si el token sigue activo (endpoint introspectToken) y solo lo renueva cuando LinkedIn responde que no lo está. Fuera de esa ventana, la comprobación se responde con las fechas almacenadas y no cuesta ninguna petición. No hay que hacer nada para un post planificado con semanas de antelación.
  • Si LinkedIn rechaza el token de todos modos, se renueva y la publicación se envía de nuevo de inmediato.
  • Una vez que caduca el token de refresco, o se revoca la autorización desde LinkedIn, no es posible ninguna renovación: la cuenta muestra la advertencia de actualización y debe autorizarse de nuevo con Update account, que es el único paso que necesita el navegador.

Límites y validaciones de LinkedIn

Lo que LinkedIn rechaza se comprueba en Odoo antes de enviar la publicación. El post muestra el motivo mientras se escribe, guardar nunca se bloquea, y la publicación de la cuenta que plantea la objeción se rechaza en lugar de enviarse y fallar en LinkedIn. Las mismas comprobaciones se aplican cuando el post llega a la publicación mediante una importación o una llamada RPC, por lo que nada las elude.

  • El mensaje se comprueba contra 3000 caracteres, la longitud que admite el campo commentary de la Posts API. Un mensaje más largo se informa en el post y la publicación no se envía.
  • Las imágenes se comprueban contra 20 por post, contra los formatos que LinkedIn publica, JPG, PNG y GIF, y contra 10 MB cada una. Una imagen se publica como imagen única y dos o más como post multiimagen. El mensaje nombra los archivos que no se pueden publicar.
  • El vídeo se comprueba contra uno por post, contra MP4 y contra 500 MB.
  • Un post que lleva imágenes y un vídeo no se rechaza: LinkedIn publica el vídeo y omite las imágenes, por lo que al post se le indica qué sale en lugar de detenerlo. Eso es también por lo que las reglas de imágenes no se aplican en absoluto a un post que lleva un vídeo — sus imágenes no deciden nada.
  • El selector de archivos solo filtra lo que el navegador propone, por lo que un archivo añadido arrastrando y soltando llega igualmente a las comprobaciones, y son ellas las que rechazan los que LinkedIn no acepta.
  • Lo que queda para LinkedIn es todo lo relativo al contenido en sí: las dimensiones y la relación de aspecto de una imagen, los códecs y la duración de un vídeo, el texto que lee como spam. Nada de eso se comprueba aquí, y una publicación que LinkedIn rechaza por uno de esos motivos se deja como Failed con el error de validación que respondió.
  • Cada llamada a LinkedIn tiene un timeout de 10 segundos, no configurable. Si LinkedIn o la conexión tardan más, la operación falla con Error connecting to LinkedIn y debe reintentarse; una publicación se deja como Failed y puede enviarse de nuevo con el botón Post.
  • Una cuenta sin token de acceso no publica: esto es lo que ocurre tras desinstalar y volver a instalar el módulo, que borra las credenciales. La línea se deja como Failed indicando que la cuenta no tiene token de acceso, y la cuenta muestra la advertencia de actualización. Autorícela de nuevo con Update account.
  • Recomendar una publicación o uno de sus comentarios, y leer esos comentarios, lo sirve Social Media LinkedIn Sync: este módulo no dibuja ninguno de esos botones y nunca llama a la Reactions API.
  • Eliminar una publicación desde el panel la elimina primero en LinkedIn. Si LinkedIn no confirma la eliminación, la operación se cancela con Error deleting LinkedIn post y el registro se conserva en Odoo, de modo que ambos lados nunca se desincronizan.

Subida de vídeo

  • LinkedIn decide cómo se divide un vídeo: initializeUpload responde una instrucción por parte, de 4 MiB cada una excepto la última, y cada parte se sube con su propia petición. Los identificadores que LinkedIn devuelve para las partes se envían de vuelta a finalizeUpload en el mismo orden, de modo que el vídeo se arma tal como se cortó. Un vídeo de 22 MB ocupa 6 partes, y publicar entonces espera a que LinkedIn termine de procesarlo, hasta 30 sondeos con dos segundos de separación. https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/videos-api
  • Un post publica un solo vídeo, por lo que un post que lleva varios se rechaza antes de subir nada: LinkedIn solo conservaría el primero y los demás se transferirían y procesarían para nada.
  • LinkedIn procesa un vídeo subido antes de que pueda publicarse, por lo que publicar un post con un vídeo espera hasta que el vídeo esté disponible: 30 intentos cada 2 segundos, que un vídeo largo puede necesitar más. Ambos números son parámetros del sistema, descritos en CONFIGURE.
  • La publicación comparte el vídeo de su post de la misma manera que comparte sus imágenes, y lo que LinkedIn hizo con él se registra en sus referencias de medios. El icono de cámara sin contador es el recurso alternativo dibujado para una publicación que solo lleva el flag has video — una importada de LinkedIn cuyo vídeo no se descargó, por lo que solo puede verse allí. Social Media LinkedIn Sync descarga los vídeos que importa, y omite uno cuando supera el límite de tamaño, LinkedIn aún lo está procesando, la descarga falla, o el parámetro del sistema social_media_sync.download_videos es False.

Opciones de publicación

  • Toda publicación se crea pública, en el feed principal, sin segmentación por país, idioma o sector, y permitiendo que se comparta: visibility, feedDistribution, targetEntities y thirdPartyDistributionChannels están fijados en el código.
  • La programación tampoco se delega a LinkedIn: la acción programada de Odoo es la que publica cuando llega la fecha. https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/posts-api

Errores informados por LinkedIn

  • Cuando LinkedIn rechaza una petición por su contenido, su respuesta solo dice que la validación falló y enumera los campos rechazados aparte, con la forma descrita en su guía de gestión de errores. Esas explicaciones son las que se muestran en Odoo, una por línea, de modo que el mensaje nombra el campo y la regla incumplida en lugar del resumen genérico.

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.