Este módulo devuelve a Odoo lo que una cuenta de X ya publicó: las publicaciones de su timeline, las cifras que recogió cada una de ellas y sus comentarios.
Es la mitad de X de Social Media Sync, separada de Social Media X siguiendo el mismo criterio: lo que cuesta una llamada. El conector pide a X un número fijo de cosas por cuenta —vincularla, refrescar su tarjeta, publicar, eliminar, leer las cifras de las publicaciones de los últimos 30 días, leer la publicación única que se está abriendo— y ese número no cambia tanto si la cuenta publicó una vez como si publicó diez mil. Todo aquello cuyo coste crece con el historial de la cuenta vive aquí: el timeline que responde hasta cien publicaciones y una descarga por cada medio aún no almacenado, y hasta cinco llamadas por publicación cuyos comentarios se leen, una por página de la conversación.
Un Odoo que solo publica en X instala Social Media X por sí solo y no paga nada de esto.
Funciones principales:
- Importación de las publicaciones del timeline, con sus fotos, vídeos y GIF animados, y de las cifras que recogió cada una de ellas, bajo demanda, mediante las acciones programadas de Social Media Sync y mediante la comprobación de actualizaciones de Social Media Base, que en X importa en lugar de marcar la cuenta.
- Comentarios de una publicación, leídos desde el panel: la conversación se recorre página a página hasta un límite, y las respuestas de un comentario se anidan a partir de lo leído en lugar de solicitarse por separado. Un comentario responde a la publicación, y responder a un comentario responde a ese comentario, que en X es una publicación como cualquier otra.
- Recomendar en una publicación y en cada comentario y respuesta de su hilo, lo que da o retira el me gusta de la cuenta en X. Cuáles le han gustado ya a la cuenta se lee de sus últimos me gusta en X, cuando se importa la cuenta y cuando se abre el hilo.
- Eliminar en los comentarios que escribió la cuenta, lo que los elimina en X: X solo elimina las publicaciones de la cuenta que lo solicita, por lo que la entrada no se ofrece en los comentarios de otras personas.
- Leer solo lo que se publicó después de una publicación elegida, con Enable since, para una cuenta que no necesita que se lea de nuevo todo su historial.
Statistics account Las cifras de la cuenta son la suma de las publicaciones que Odoo guarda para ella. Una publicación eliminada en X se marca como Deleted y conserva las cifras de la última lectura, por lo que sigue contando; las cifras solo bajan cuando se elimina el propio registro en Odoo.
Las cifras de la tarjeta son la suma de todas las publicaciones de la cuenta almacenadas en Odoo, sin ventana ni límite. Lo que limitan las cien publicaciones de una página del timeline es hasta dónde atrás llega una importación, y lo que limita la ventana de 30 días de Social Media X es qué publicaciones vuelven a leer sus cifras desde X; cualquier publicación más antigua conserva las últimas cifras que se leyeron para ella y sigue contando. Solo se almacenan y se cuentan las publicaciones originales: los retweets, las respuestas y las citas se descartan en la importación.
- El icono del ojo: número total de visualizaciones, que puede incluir varias visualizaciones del mismo usuario.
- El icono de la mano: las interacciones (me gusta, comentarios, retweets y citas) de cada publicación almacenada para la cuenta, incluida una publicación eliminada en X, que conserva las cifras de la última lectura. Son las métricas que X devuelve para una publicación.
- El icono de la estrella: el engagement de la cuenta, las interacciones de sus publicaciones sobre sus impresiones. X no informa de ninguna tasa propia, por lo que se deriva de esos contadores, y cuenta los retweets y las citas como interacciones como cualquier otra.
Si se alcanza el límite de peticiones de la API de X mientras se refrescan las estadísticas, se conservan las últimas métricas almacenadas en la cuenta en lugar de fallar.
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.0Trae a Odoo la cronología existente de una cuenta de X: sus publicaciones, sus cifras, sus medios y sus hilos de comentarios, para que los usuarios puedan leer, dar me gusta, responder y eliminar comentarios desde Odoo.
Este módulo permite a Odoo importar lo que una cuenta de X ya publicó, en lugar de solo enviar nuevas publicaciones. En el formulario de la cuenta social, una nueva opción, "Enable since", hace que la importación lea solo las publicaciones publicadas después de la última ya sincronizada, lo que ahorra llamadas a la API; una referencia "Last Post" y un registro de publicación vinculado mantienen ese punto de control. Al desactivar la opción se borran ambos.
Cuando se lee la línea de tiempo, cada tuit se convierte en una publicación en Odoo con su texto, autor, fecha de publicación, contadores y multimedia. Las fotos se descargan, y los vídeos o GIF animados se almacenan como archivos mp4, eligiendo la mejor calidad disponible; una publicación con un vídeo se marca aunque el archivo no se haya podido descargar. Se omiten los retuits, las respuestas y las publicaciones citadas, por lo que solo se importan las publicaciones originales. También se leen los "me gusta" de la propia cuenta, por lo que las publicaciones que ya le gustaron a la cuenta se marcan como tales.
En cada publicación, los usuarios pueden abrir la conversación: las respuestas se leen página por página (hasta un límite fijo), con sus autores, imágenes, estado de "me gusta" y recuentos de respuestas, y las respuestas a respuestas se adjuntan al comentario correcto. Desde el diálogo, los usuarios pueden dar o quitar "me gusta" a una publicación o a un comentario, escribir una respuesta (con imágenes) y eliminar un comentario que escribió la cuenta. Se rechaza eliminar una publicación mediante la acción de comentario.
Los errores se gestionan de forma controlada: las credenciales caducadas marcan la cuenta, los límites de cuota muestran un mensaje y una publicación eliminada se notifica como tal. La importación se ejecuta a través de la comprobación de actualización existente, cada cuenta en su propio savepoint para que un fallo no deshaga los demás.
Depende de
Modelos y campos (2)
- social.account · amplía un modelo existenteenable_since, last_post_ref (Last Post), post_since_id
- social.post.account · amplía un modelo existente
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-03Estado de confirmación: 1 confirmada, 8 sin información de 9 versiones.
Fuentes · Odoo 17.0
Confirmado el 2026-11-03 en la rama 17.0 de OCA/social.
terminal Instalación y uso
Documentación de OCA · Odoo 17.0Instalación
Fuente · Odoo 17.0Este módulo se instala por sí solo en cuanto Social Media Sync y Social Media X están ambos presentes, que es para lo que sirve un módulo puente: la elección de sincronizar ya la hizo quien instaló Social Media Sync, y esto solo evita que una cuenta de X se quede sin la mitad que le corresponde.
Instalar Social Media X por sí solo es una instalación válida: la cuenta queda vinculada, publica y elimina, relee las cifras de las publicaciones de los últimos 30 días y marca como Deleted la publicación que se abre después de haber sido eliminada en X.
No añade ninguna dependencia de Python propia: le pide el cliente de tweepy al conector y nunca construye uno.
Configuración
Fuente · Odoo 17.0No hay que configurar nada para este módulo: lee X con las credenciales que la cuenta ya tiene, que se configuran en Social Media X.
Lo que necesitan esas credenciales es una App capaz de consumir la API, la misma que requiere el conector: la cronología del usuario, la búsqueda reciente, los me gusta de la cuenta y la eliminación de sus comentarios, que este módulo consume, son endpoints de la API v2 de X, por lo que una App de desarrollador fuera de un Proyecto les responde 403 igual que al resto. Véase la configuración de Social Media X y el precio de la API de X.
Este módulo es donde se decide la factura de pago por uso de una cuenta de X. Leer una publicación de la cuenta cuesta $0.001, pero las respuestas que lee el diálogo de comentarios son publicaciones de otras personas, a $0.005 cada una, y pide hasta cinco páginas de cien mientras permanece abierto, refrescándose cada dos minutos. La deduplicación de 24 horas de X cobra la misma respuesta una sola vez por muchas veces que se lea, así que lo que se paga son las respuestas que son nuevas, no que el diálogo esté abierto; aun así, un hilo concurrido es lo más caro que hacen los módulos contra X. La fecha Enable since de abajo es la palanca: nada anterior a ella se lee jamás.
Abrir el diálogo también lee una página de los me gusta más recientes de la cuenta, hasta cien publicaciones cobradas una a una, y lo mismo hace cada importación de la cuenta; los refrescos del diálogo no lo vuelven a leer. El uso explica qué muestra esa página y qué no.
Cada comentario o respuesta enviado desde el panel, tanto si X lo acepta como si no, cada Recommend pulsado en la tarjeta de una publicación, y cada comentario eliminado desde el panel una vez que X lo ha eliminado, vuelven a leer la cuenta: el panel ejecuta entonces para la cuenta de la publicación lo que ejecuta su botón Update, la lectura de las cifras de las publicaciones recientes de Social Media X y otra lectura de la cronología por parte de este módulo, con su página de me gusta. Esas lecturas se cobran como cualquier otra.
Los vídeos y GIF animados de la cronología se descargan enteros, y cada archivo está sujeto al límite de tamaño de Social Media Sync, el parámetro del sistema social_media_sync.media_max_size_mb. Un vídeo largo puede ser mayor de lo que permite, así que una cuenta que los publique es la que debe subirlo. Dejar los vídeos y los GIF animados fuera de Odoo por completo, mientras las fotos se siguen descargando, es lo que hace social_media_sync.download_videos escrito como False. Véase la configuración de Social Media Sync para ambos.
Enable since
- Vaya a Social Media > Configuration > Accounts
- Seleccione la cuenta
- Seleccione Enable since
- El campo Post since se habilita entonces, permitiéndole seleccionar la publicación a partir de la cual empezar la búsqueda en la siguiente recuperación de publicaciones. La importación ya no lee lo anterior a esa publicación, pero las cifras de las publicaciones de los últimos 30 días se vuelven a leer de todos modos por Social Media X; más antiguas que eso, cada publicación conserva las últimas cifras que se leyeron para ella.
Acciones programadas
Las pasadas sobre una cuenta de X son las que declara Social Media Sync, más dos de Social Media Base: la comprobación de actualizaciones y el refresco diario de las cifras de las publicaciones recientes.
- Social: Checking social media updates, cada 2 horas, lee la cronología de cada cuenta de X. X no tiene una respuesta barata a si algo se movió — el único endpoint que lo sabe es la cronología, y leerla ya es la importación — así que esta pasada importa en lugar de marcar la cuenta.
- Initial sync of the new accounts, mensual, importa la cronología de una cuenta que acaba de vincularse. Vincular una también desencadena esta acción de inmediato, así que su tarjeta se rellena desde el primer momento.
- Full resync, semanal, lee la cronología de una cuenta de X exactamente como lo hace la importación ordinaria, así que no detecta nada que se haya eliminado allí. Una publicación eliminada en X se marca como Deleted cuando alguien la abre desde el panel o desde su formulario, que es una comprobación de Social Media X.
- Social: Refresh the statistics of the recent publications, diario, lee las publicaciones de los últimos 30 días por identificador, que es una llamada de Social Media X y no de este módulo.
Una cuenta cuya primera importación aún no se ha ejecutado queda excluida de la comprobación cada dos horas, porque esa comprobación y la importación inicial escriben la misma fila desde dos hilos.
Importación de las publicaciones
- La cronología de la cuenta se lee con las publicaciones de un usuario, que responde hasta 100 publicaciones en una sola solicitud y no está paginada: lo anterior a esas cien no se importa, para ahorrar las solicitudes del plan. Los retweets y las respuestas quedan excluidos, por lo que solo se almacenan las publicaciones originales de la cuenta.
- Cada archivo multimedia de una publicación se descarga una vez y se almacena como adjunto, y un archivo multimedia ya almacenado no se vuelve a pedir. Una foto se descarga desde la dirección que X responde con ella, y una respondida sin dirección no se almacena. Un vídeo o un GIF animado no tiene esa dirección: X enumera los archivos que sirve para él, y se descarga el mp4 de mayor calidad, que para un GIF animado es el único mp4 que X hace de él. La tarjeta de la publicación cuenta sus vídeos, y su formulario los reproduce.
- No se descarga ningún archivo que supere el límite de tamaño de Social Media Sync. El límite se aplica a cada archivo por separado, no a la publicación en su conjunto.
- Un vídeo que no se descarga —X no enumera ningún mp4 para él, la descarga falla o el archivo supera el límite— deja igualmente la publicación marcada como que tiene un vídeo, y su formulario indica que el vídeo no se descargó. La siguiente pasada que lea la publicación vuelve a intentar la descarga.
- Mientras el parámetro del sistema
social_media_sync.download_videosseaFalse, no se descarga ningún vídeo ni ningún GIF animado, y las fotos sí. La publicación se marca como que tiene un vídeo de todos modos, y su formulario indica que el vídeo no se descargó. Los vídeos ya descargados se mantienen, y una vez que el parámetro vuelve aTruela siguiente importación descarga los que faltan de las publicaciones que lee. - Los archivos provienen de los servidores desde los que X entrega sus archivos multimedia, no de su API, por lo que descargarlos no consume créditos del plan.
- El botón Update del panel de control ejecuta la misma importación bajo demanda, sobre cada cuenta mostrada.
- El texto de una publicación se almacena tal como lo escribió X, sin el enlace
https://t.co/…que X le añade por cada una de sus fotos, vídeos o GIF animados, que se almacenan aparte como adjuntos. Los enlaces que escribió el autor, y el que señala una cita, permanecen en el texto. - El módulo añade los filtros With Reposts y With Quotes al panel de búsqueda del panel de control, junto a los filtros de impresiones e interacciones de Social Media Sync.
- La lista de publicaciones del panel de control ofrece las columnas Reposts y Quotes, justo después de Shares. La lista es compartida por todas las redes sociales, por lo que ambas están ocultas hasta que se eligen desde las columnas opcionales de la lista.
- Con Enable since la importación solo pide lo que se publicó después de la publicación almacenada, por lo que las publicaciones más antiguas ya no las lee esta importación. Las publicadas en los últimos 30 días se actualizan de todos modos por Social Media X, que lee sus cifras por identificador. La tarjeta de la cuenta no se ve afectada en ningún caso: las cifras se escriben en cada publicación, y la tarjeta suma todas las publicaciones almacenadas.
Comentarios
- Un comentario o una respuesta escrita en un hilo de X puede llevar imágenes. El compositor ofrece la carga, los archivos viajan a X con la respuesta y se muestran en el comentario publicado.
- El vídeo o el GIF animado de una respuesta se muestra por su portada, como una imagen más del comentario. No se reproduce en Odoo: se ve en X.
- El texto de un comentario leído de X se muestra igual que el texto de una publicación importada: sin los enlaces que X añade por sus archivos multimedia, y con los enlaces que escribió su autor.
- Los comentarios de una publicación se leen con el endpoint de búsqueda reciente de X, que solo abarca los últimos 7 días: las respuestas a publicaciones más antiguas no se muestran en el panel de control aunque la publicación las tenga. Los retweets y las citas también quedan excluidos, solo se listan las respuestas.
- La conversación se lee de cien en cien respuestas, siguiendo el token que X responde hasta que se agota o hasta que se han leído cinco páginas. Leída hasta el final, cuántas respuestas tiene cada comentario se cuenta en Odoo y nunca se vuelve a preguntar a X; cortada por ese techo o por el límite de solicitudes del plan, no se indica ninguna cifra, y el panel de control ofrece desplegar las respuestas de cada comentario.
- Responder a una publicación y responder a uno de sus comentarios son la misma llamada a X: en X un comentario es una publicación como cualquier otra, y lo que cambia es la publicación a la que se responde.
Recomendar y eliminar
- Recommend se ofrece en la tarjeta de cada publicación de X y en cada comentario y respuesta de su hilo. Al pulsarlo se da el me gusta de la cuenta en X, y al pulsarlo sobre lo que ya está Recommended se retira. El me gusta se da siempre como la cuenta a la que pertenece la publicación.
- Delete, en el menú de un comentario, solo se ofrece en los comentarios que escribió la cuenta que responden a la publicación. X solo elimina las publicaciones de la cuenta que lo solicita, por lo que los comentarios de otras personas no lo ofrecen, y una respuesta dentro de un hilo tampoco lo ofrece. Tras una confirmación la publicación se elimina en X y el hilo se lee de nuevo sin ella. Un comentario que ya no está en X cuenta como eliminado.
- Cuando X rechaza la llamada, se muestra su motivo en su lugar. Una App que no puede gastar contra la API se explica como tal, con el enlace a los precios de X, y las credenciales que X ya no acepta marcan la cuenta como que necesita autorizarse de nuevo. Un error que X no explica en un Recommend hace que Odoo pregunte por la publicación misma, que se marca Deleted si ya no está en X.
Lo que Odoo ve de los me gusta
- No se puede preguntar a X si a la cuenta le gustó una publicación dada. Lo que ofrece es la lista de las últimas publicaciones a las que la cuenta dio me gusta, y Odoo lee una sola página de ella, las cien últimas, en dos momentos: en cada importación de la cuenta, una vez que su cronología ha respondido, para marcar las publicaciones que la cuenta recomendó; y cuando se abre el diálogo de los comentarios, para marcar los comentarios y las respuestas.
- Un me gusta anterior a esos cien no se ve: la publicación o el comentario se dibuja como no recomendado. Pulsar Recommend ahí da un me gusta que X ya tiene; X responde que se ha dado, y la entrada se dibuja correctamente a partir de entonces.
- La actualización del diálogo cada dos minutos, y la recarga tras enviar o eliminar un comentario, no vuelven a leer los me gusta. Los comentarios ya en pantalla conservan el me gusta que tenían, y los nuevos llegan como no recomendados. Un me gusta dado o retirado en x.com mientras el diálogo está abierto se ve la próxima vez que se abre el diálogo; en una publicación, en la siguiente importación.
- El me gusta de una publicación se almacena en ella, y cada importación lo vuelve a escribir en las publicaciones que responde su página de la cronología. El me gusta de un comentario no se almacena en Odoo: el diálogo lo vuelve a leer cada vez que se abre.
- Una página de me gusta que no se puede leer nunca detiene la importación ni los comentarios. La importación deja las publicaciones como estaban marcadas, y el diálogo dibuja sus comentarios como no recomendados.
Lo que cuesta
- X cobra la página de me gusta por cada publicación que responde, hasta cien, y una publicación leída dos veces en el mismo día se cobra una vez. Se lee una vez por cuenta en cada importación —el botón Update, la comprobación de actualizaciones cada dos horas, la sincronización inicial y la resincronización completa— y una vez cada vez que se abre el diálogo de los comentarios de una publicación.
- Recommend en un comentario es una llamada a X, y la tarjeta no se actualiza después.
- Recommend en la tarjeta de una publicación es una llamada a X, y después, tanto si X la aceptó como si no, la tarjeta se actualiza tal como lo hace su botón Update con la cuenta: las cifras de las publicaciones recientes, la cronología y la página de me gusta.
- Delete es una llamada a X. El hilo se lee entonces de nuevo, y una eliminación que X aceptó actualiza la tarjeta igual que lo hace Recommend.
- Lo que X cobra por cada una de esas llamadas está en los precios de la API de X.
Lo que este módulo no detecta
- Sus propias pasadas no detectan una publicación eliminada en X: una publicación eliminada allí se marca Deleted solo por la comprobación que hace Social Media X cuando se abre la publicación.
Límites de velocidad
Los endpoints de los que este módulo gasta del plan de la cuenta son la cronología del usuario, la búsqueda reciente de los comentarios, la publicación de una respuesta, el me gusta y su retirada, que comparten una ventana, la lista de los últimos me gusta de la cuenta y la eliminación de un comentario. Cada uno de ellos tiene su propia ventana en la cuenta, el mismo registro donde Social Media X almacena las ventanas de los endpoints de los que gasta —la lectura de una sola publicación y la lectura de las cifras por identificador—, y cuando X responde que una está agotada Odoo deja de llamar a ese endpoint hasta que la ventana expire.
Mientras dura la ventana de los comentarios, abrir la conversación de una publicación muestra el aviso The comments could not be read from X. The account may have reached the limit of requests of its plan. en lugar de un hilo vacío, y una actualización en ese estado deja intactos los comentarios ya en pantalla.
Mientras dura la ventana de las respuestas, publicar un comentario responde The comment could not be published on X. The account may have reached the limit of requests of its plan. en lugar de informar de una respuesta que X nunca recibió. El texto del compositor no se conserva, pero el comentario al que se responde sigue siendo el objetivo, por lo que el reintento comienza bajo el mismo comentario.
Mientras dura la ventana de los me gusta, Recommend responde The recommendation could not be sent to X. The account may have reached the limit of requests of its plan. y la entrada queda como estaba dibujada. Mientras dura la ventana de la eliminación, Delete responde The comment could not be deleted on X. The account may have reached the limit of requests of its plan. y el comentario permanece. Mientras dura la ventana de la lista de me gusta, la importación y el diálogo continúan sin ella, como cuando la página no se puede leer.
Desinstalación
Desinstalar este módulo deja la cuenta vinculada y capaz de publicar. Lo que se va con él es el punto de control de la importación: Enable since, Post since y la referencia de la última publicación leída.
Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen.
Las instrucciones de instalación, el paquete de distribución, las dependencias y los pasos de configuración no se muestran porque todavía no se han verificado en la documentación del módulo para ninguna versión.
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.