TIP: You can type at any time to perform a new search.
Social Media LinkedIn Sync
social_media_linkedin_sync · OCA/social
Security findings
- Repository
- OCA/social · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Social Network
- Folder size
- 0.36 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- Yes
- Website
- https://github.com/OCA/social
- Last tracking update
- 2026-10-08 03:00:01
- Authors
- Odoo Community Association (OCA), Binhex
- Maintainers
- Odoo Community Association (OCA), Binhex
- Committers
- OCA-git-bot, oca-ci, Edilio Escalona Almira
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
This module brings back into Odoo what a LinkedIn page already published: the posts themselves, the figures each of them collected, and their comments and reactions. It is the LinkedIn half of *Social Media Sync*, split from *Social Media Linkedin* along the same line: what a call costs. The connector asks LinkedIn for a fixed number of things per account — publish, delete, the daily figures of the whole page — and that number does not change whether the page published once or ten thousand times. Everything whose cost grows with the history of the page lives here: reading the feed one page at a time, asking LinkedIn about the publications missing from it a hundred URNs at a time, and one call per comment thread. The figures of the publications are read by *Social Media Linkedin*, in as many calls as the 4 KB limit of the query string needs, whoever hands it the identifiers. An Odoo that only publishes on LinkedIn installs *Social Media Linkedin* alone and pays for none of it. Main features: - Import of the publications of the page and of the statistics each of them collected, on demand and through the scheduled actions of *Social Media Sync*. - Full resynchronization of a page, the only pass that notices a publication deleted on LinkedIn. Missing from the feed never marks anything on its own: LinkedIn is asked about each suspect by its URN, one call per hundred of them, and only a `404` writes the deletion. The [Posts API](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/posts-api) publishes asynchronously (`PUBLISH_REQUESTED`), answers the author finder in reader context, and states that a page returning fewer results than asked is not the end of the feed — so a publication that is alive can be absent from a listing read whole. - Publications deleted on LinkedIn recognised while the dashboard is being used: a reaction or a comment answered with a `404` makes Odoo ask LinkedIn about the publication itself, and only its confirmation marks the line as deleted. - Comment threads read from the dashboard, with their replies, and *Recommend* on a publication and on each of its comments, which also withdraws the reaction it made. - Detection of pages that moved since the last import, which puts a notice on the dashboard inviting the user to press *Update*. It costs at most two calls per account, and reuses the daily figures the connector already read on the same pass instead of asking LinkedIn for the same days twice.
Code Analysis
Views touched (1)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
social_account_view_form_inherit_sync_linkedin |
social.account.view.form.inherit.sync.linkedin | social.account | form | Inherits social_media_linkedin.social_account_view_form_inherit |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (2)
New fields (3)
-
linkedin_missing_sync_scopesCharcompute='_compute_linkedin_missing_sync_scopes'help='The scopes the token of this account was not granted and the import of its history needs. A token keeps the scopes it was issued with, so an account associated before this module was installed has to be authorized again.' -
linkedin_statistics_checkpointJsoncopy=Falsegroups='base.group_system'help='The daily figures LinkedIn reported for the whole page over the last days, as of the last time the publications were imported. The check for updates compares the page against it instead of reading the statistics of every publication.'string='Statistics Checkpoint' -
linkedin_sync_scopes_notifiedBooleancopy=Falsedefault=Falsehelp='Whether the responsible user was already told that this account has to be authorized again before its history can be imported. Kept so the check that runs every two hours warns once and not on every pass.'
No public methods.
New fields (0)
No new fields.
Public methods (8)-
action_like_comment(self, comment_ref=None, author_urn=None) -
action_like_post(self, author_urn=None) -
action_unlike_comment(self, comment_ref=None, author_urn=None) -
action_unlike_post(self, author_urn=None) -
create_comment(self, post_data, context=None) -
delete_comment(self, comment_ref)Delete one comment of the thread of this publication. LinkedIn honours the deletion for the author of the comment and for the owner of the publication, and the owner is what this account is: moderating a comment of somebody else on its own post is the ordinary case. Which of the two the call acts as is read from the account, not from the caller, or an RPC could choose whom the deletion is attributed to. :param comment_ref: id of the comment to delete, inside this thread. :rtype: dict -
get_comment_replies(self, comment_ref) -
get_comments(self)