Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# generated from manifests external_dependencies
cairosvg
linkedin-api-client
lottie
python-telegram-bot
requests_toolbelt
293 changes: 293 additions & 0 deletions social_media_linkedin/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,293 @@
=====================
Social Media Linkedin
=====================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:5b02242f5dbe90213a92d0d2632daa7f4c6b7553a8057302a5ab4f1f79657f90
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github
:target: https://github.com/OCA/social/tree/18.0/social_media_linkedin
:alt: OCA/social
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/social-18-0/social-18-0-social_media_linkedin
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=18.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module provides the necessary functionality for basic interaction
with the LinkedIn social network.

Main features:

- User account integration.
- Post creation.
- Post reactions (likes, comments).
- Comment reactions (likes)
- Reports and graphs with agnostic metrics.

Statistics account
------------------

1. The eye icon: Total number of views, which may include multiple views
by the same user.

2. The hand icon: means the impressions (clicks, likes, comments,
shares) that the posts created historically on the account have had.

3. The star icon: means the value of the engagement of the publications,
it is a calculation similar to (interactions / impressions) \* 100,
that is, a percentage.

|STATISTICS_ACCOUNT|

.. |STATISTICS_ACCOUNT| image:: https://raw.githubusercontent.com/social_media_linkedin/static/img/readme/STATISTICS_ACCOUNT.png

**Table of contents**

.. contents::
:local:

Configuration
=============

To configure this module, you need to:
--------------------------------------

Please note that you must have a developer account. The steps required
for using it are defined below:

Before creating this developer account, you must have a partner company
on your LinkedIn account and be an administrator.

- Go to https://developer.linkedin.com/

- Create a new Developer App.

- Fill in the requested fields. In the *Privacy Policy URL* field, copy
your company's URL.

|FORM_CREATE_APP|

- Once the app is created, go to the *My Apps* menu and you will see the
newly created app; select it.

- Within the app, in the *Settings* tab, verify your company. You will
see a button that says Verify. Click it, and in the window that
appears in the lower left corner, click the *Generate URL* button.
Copy the generated URL into your browser and accept.

- Then go to the *Products* tab and request access to the following
products (for basic and free use):

- LinkedIn Ad Library
- Share on LinkedIn
- Advertising API
- Events Management API
- Sign In with LinkedIn using OpenID Connect

|PRODUCTS|

Note that some products require you to fill out a form; you must do
so, otherwise, the necessary scopes for basic use of your account will
not be enabled.

- After requesting the aforementioned Products, go to the Auth tab and
you will see all the enabled scopes at the bottom.

- At the top of the aforementioned tab, you will see the Client ID and
Primary Client Secret information.

- Configure the access points for which you want to use the account.
Follow these steps:

- Go to *Settings* > *Technical* > System Parameters.
- Search for web.base.url
- Copy the base URL and concatenate it with the endpoint. Then, in
your LinkedIn Developer Account, on the Authentication tab, in the
Authorized Redirect URLs for Your App section, add a new item. \*
Example: web.base.url: http://192.168.1.7:8017 endpoint:
/linkedin/callback linkedin_url:
http://192.168.1.7:8017/linkedin/callback

|CONFIGURE_URL_CALLBACK|

Registering the Client ID and Client Secret. Integration of a user account.
---------------------------------------------------------------------------

- Go to *Social Media* > Settings > Social Media

- Click on the *Associate Account* button for the desired social
network.

|ASSOCIATE_ACCOUNT|

- A wizard will open for you to add the Client ID and Client Secret
obtained from your developer account.

|WIZARD_ASSOCIATE_ACCOUNT|

- By clicking the *Associate* button here, you'll be taken to a LinkedIn
authentication page. Once you validate your information, you'll be
taken to the system and the Dashboard view, where you'll see your
posts.

|AUTHORIZE_ACCOUNT|

- Once you have completed these steps and everything is working
correctly, you can see your account in *Social Media* > Configuration
> Accounts

.. |FORM_CREATE_APP| image:: https://raw.githubusercontent.com/OCA/social/18.0/social_media_linkedin/static/img/readme/FORM_CREATE_APP.png
.. |PRODUCTS| image:: https://raw.githubusercontent.com/OCA/social/18.0/social_media_linkedin/static/img/readme/PRODUCTS.png
.. |CONFIGURE_URL_CALLBACK| image:: https://raw.githubusercontent.com/OCA/social/18.0/social_media_linkedin/static/img/readme/CONFIGURE_URL_CALLBACK.png
.. |ASSOCIATE_ACCOUNT| image:: https://raw.githubusercontent.com/OCA/social/18.0/social_media_linkedin/static/img/readme/ASSOCIATE_ACCOUNT.png
.. |WIZARD_ASSOCIATE_ACCOUNT| image:: https://raw.githubusercontent.com/OCA/social/18.0/social_media_linkedin/static/img/readme/WIZARD_ASSOCIATE_ACCOUNT.png
.. |AUTHORIZE_ACCOUNT| image:: https://raw.githubusercontent.com/OCA/social/18.0/social_media_linkedin/static/img/readme/AUTHORIZE_ACCOUNT.png

Usage
=====

List of posts generated from Odoo.
----------------------------------

Only posts generated using Odoo are displayed.

- Go to *Social Media* > Post

Generate a post.
----------------

This feature acts as a template for generating multiple posts from a
single view, depending on the selected accounts.

- Go to *Social Media* > Post > New or Go to *Social Media* > Dashboard
> Add Post
- Fill in the required fields |CREATE_POST|
- Save
- Click on the *Post* button

Update token, client ID, client Secret and organization data
------------------------------------------------------------

- Go to *Social Media* > Configuration > Accounts

- Select the account

- Click on the *Update account* button

|BUTTON_UPDATE_ACCOUNT|

- In the wizard that appears, if none of the checkboxes are selected and
the *Update* button is pressed, the system will update only the
organization's data.

- If the *Update keys* checkbox is selected, the current Client ID and
Client Secret values will be displayed by default. Modify any of these
values and authentication will be performed again through LinkedIn to
update these values and the token.

|UPDATE_KEYS|

- Selecting the *Update token* checkbox will update the current token.

|UPDATE_TOKEN|

Archive Account Linkedin
------------------------

- Go to *Social Media* > Configuration > Accounts

- Select the account

- Click on the *Delete account* button

|ARCHIVE_ACCOUNT|

- Please note that all data associated with this account will be
archived.

.. |CREATE_POST| image:: https://raw.githubusercontent.com/social_media_linkedin/static/img/readme/CREATE_POST.png
.. |BUTTON_UPDATE_ACCOUNT| image:: https://raw.githubusercontent.com/social_media_linkedin/static/img/readme/BUTTON_UPDATE_ACCOUNT.png
.. |UPDATE_KEYS| image:: https://raw.githubusercontent.com/social_media_linkedin/static/img/readme/UPDATE_KEYS.png
.. |UPDATE_TOKEN| image:: https://raw.githubusercontent.com/social_media_linkedin/static/img/readme/UPDATE_TOKEN.png
.. |ARCHIVE_ACCOUNT| image:: https://raw.githubusercontent.com/social_media_linkedin/static/img/readme/ARCHIVE_ACCOUNT.png

Known issues / Roadmap
======================

Like the comments.
------------------

- To like a comment you need the scopes:

- w_member_social_feed,
- r_organization_social_feed Which are special permissions granted by
LinkedIn

Comments on publications
------------------------

- Images, videos, documents, or any type of media are not allowed in
post comments via the API, due to LinkedIn's own limitations. Although
there is an example of how to do it in the documentation, in practice
it doesn't work, even in paid versions.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/social/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/social/issues/new?body=module:%20social_media_linkedin%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* BinhexTeam

Contributors
------------

- [Binhex] (https://www.binhex.cloud):

- Edilio Escalona Almira [email protected]

- [Trobz] (https://trobz.com/):

- Khanh (Dinh Van) [email protected]

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/social <https://github.com/OCA/social/tree/18.0/social_media_linkedin>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
6 changes: 6 additions & 0 deletions social_media_linkedin/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Copyright 2025 Binhex <https://www.binhex.cloud>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import controllers
from . import models
from . import wizards
38 changes: 38 additions & 0 deletions social_media_linkedin/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Copyright 2025 Binhex <https://www.binhex.cloud>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "Social Media Linkedin",
"summary": """Integration of the LinkedIn social media.""",
"version": "18.0.1.0.0",
"license": "AGPL-3",
"author": "BinhexTeam,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/social",
"depends": [
"social_media_base",
],
"data": [
"data/social_media_data.xml",
"views/social_post_account_views.xml",
"views/social_account_views.xml",
"views/utm_group_campaign_views.xml",
"views/utm_campaign_views.xml",
"wizards/wizard_social_account.xml",
],
"assets": {
"web.assets_backend": [
# COMPONENTS
"social_media_linkedin/static/src/components/**/*.js",
# SERVICES
"social_media_linkedin/static/src/js/services/**/*.js",
# KANBAN
"social_media_linkedin/static/src/js/views/**/*.js",
],
},
"external_dependencies": {
"python": [
"linkedin-api-client",
],
},
"exclude": ["social"],
}
1 change: 1 addition & 0 deletions social_media_linkedin/controllers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import social_media_linkedin
Loading
Loading