Skip to main content

Create LinkedIn content using Python

Project description

LinkedIn Python 💙🐍

This package allows you to easily create post on LinkedIn using python, it follow LinkedIn v2 APIs.

The official LinkedIn doc is here

Installation

You can install the package using pip

pip install -e .

or for development

pip install -e ".[dev]"

Installation

pip install linked_pythoon

Getting Started

Obtain a token

You need to obtain a token, is not an easy process since you need to create a LinkedIn app, please follow this youtube tutorial

Then, run

export LINKEDIN_TOKEN=<YOUR_TOKEN>

in your current shell

Creating a Post

To create a post, you can simple use the User class.

from linkedin_python import User

user = User()
res = user.create_post(
    "Post content",
    images=[
        ("/home/zuppif/Documents/LinkedInGPT/grogu.jpg", "image description"),
        ("/home/zuppif/Documents/LinkedInGPT/grogu_2.png", "image description"),
    ],
)

This will create a post with two images.

Contribution

We welcome all the contributions, here some dev specific stuff. To contribute

git clone git@github.com:FrancescoSaverioZuppichini/linkedin_python.git
cd linkedin_python && pip install -e ".[dev]"

This will install of the dev packages, e.g. black and isort

Code Quality 🧹

We provide two handy commands inside the Makefile, namely:

  • make style to format the code
  • make check_code_quality to check code quality (PEP8 basically)

So far, there is no types checking with mypy.

Tests 🧪

pytests is used to run our tests.

Publish on PyPi 🚀

Important: Before publishing, edit __version__ in src/init to match the wanted new version.

We use twine to make our life easier. You can publish by using

export PYPI_USERNAME="you_username"
export PYPI_PASSWORD="your_password"
export PYPI_TEST_PASSWORD="your_password_for_test_pypi"
make publish -e PYPI_USERNAME=$PYPI_USERNAME -e PYPI_PASSWORD=$PYPI_PASSWORD -e PYPI_TEST_PASSWORD=$PYPI_TEST_PASSWORD

You can also use token for auth, see pypi doc. In that case,

export PYPI_USERNAME="__token__"
export PYPI_PASSWORD="your_token"
export PYPI_TEST_PASSWORD="your_token_for_test_pypi"
make publish -e PYPI_USERNAME=$PYPI_USERNAME -e PYPI_PASSWORD=$PYPI_PASSWORD -e PYPI_TEST_PASSWORD=$PYPI_TEST_PASSWORD

Note: We will try to push to test pypi before pushing to pypi, to assert everything will work

CI/CD 🤖

We use GitHub actions to automatically run tests and check code quality when a new PR is done on main.

On any pull request, we will check the code quality and tests.

When a new release is created, we will try to push the new code to PyPi. We use twine to make our life easier.

The correct steps to create a new realease are the following:

  • edit __version__ in src/init to match the wanted new version.
  • create a new tag with the release name, e.g. git tag v0.0.1 && git push origin v0.0.1 or from the GitHub UI.
  • create a new release from GitHub UI

The CI will run when you create the new release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

linkedin_python-0.0.1.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

linkedin_python-0.0.1-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file linkedin_python-0.0.1.tar.gz.

File metadata

  • Download URL: linkedin_python-0.0.1.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for linkedin_python-0.0.1.tar.gz
Algorithm Hash digest
SHA256 a8055d20f0764b893ac32c257f9c2644023620e7c18c64f8cfe6c91a7202ab25
MD5 ad63f650313659a22f67841846430337
BLAKE2b-256 152a244d8524b4d438c5a59725a051691b21b7471e49333f79e584d7a67494e9

See more details on using hashes here.

File details

Details for the file linkedin_python-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for linkedin_python-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0dc5ffc1dcc3e508bc6100730fe41a20986e45a4631467b60712b4b31abede72
MD5 9095f569db67e660985fba4821b776f8
BLAKE2b-256 40ee8f9df5fcc46fdc58fefd784e7e2744336ccd04dd27fc0440405047212da4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page