https://github.com/valeriogalano/readwise-to-linkedin
Pubblica automaticamente le news di Pensieri in codice da Readwise sull'account LinkedIn del podcast
https://github.com/valeriogalano/readwise-to-linkedin
automation cronjob linkedin pensieriincodice python readwise
Last synced: 1 day ago
JSON representation
Pubblica automaticamente le news di Pensieri in codice da Readwise sull'account LinkedIn del podcast
- Host: GitHub
- URL: https://github.com/valeriogalano/readwise-to-linkedin
- Owner: valeriogalano
- License: mit
- Created: 2024-09-30T12:56:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-14T15:58:45.000Z (3 months ago)
- Last Synced: 2026-05-17T02:51:16.886Z (about 1 month ago)
- Topics: automation, cronjob, linkedin, pensieriincodice, python, readwise
- Language: Python
- Size: 178 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Pensieriincodice - News to Linkedin
Il progetto ha lo scopo di pubblicare le news di PIC sull'account Linkedin del podcast.
Le news vengono prelevate da Readwise.
## Autenticazione
Purtroppo le API di Linkedin non restituiscono un `refresh_token` e per ottenere ogni volta un `access_token`
c'è bisogno dell'interazione utente che inserisca manualmente i dati di accesso.
L'`access_token` ha validità 60 giorni.
### Flusso

Per l'autenticazione è necessario avviare lo script `auth.py`.
Verrà aperta una finestra del browser dove chiederà all'utente di inserire username e password dell'account Linkedin.
Una volta che l'utente ha effettuato il login, il browser si chiuderà automaticamente
e verrà memorizzato in un file json denominato `{today_date}.json`
(ad es. `2024-10-04.json`) l'`access_token` e il `personal_urn` (id) dell'utente.
Queste informazioni dovranno essere aggiornate nei secrets di github per poter far funzionare l'automazione.
## Installazione in locale
### Variabili di ambiente
Nel file `.env.example` ci sono le variabili di ambiente che devi compilare per completare l'autenticazione,
puoi impostarle nel tuo IDE o nel sistema operativo in esecuzione.
Le variabili necessarie l'autenticazione sono 3:
```
CLIENT_ID=""
CLIENT_SECRET=""
READWISE_ACCESS_TOKEN=""
```
Le seguenti variabili sono opzionali perchè hanno nel codice un valore di default:
```
CALLBACK_URL_PORT="8000"
CALLBACK_URL_PROTOCOL="http"
CALLBACK_URL="localhost"
SCOPE="w_member_social openid profile"
```
Mentre le seguenti variabili:
```
ACCESS_TOKEN=
PERSONAL_URN=
LINKEDIN_MESSAGE_TEMPLATE="{title}\n{notes}\n\n{link}"
```
sono da inserire solo sul repo per consentire alla action di github di eseguire la pubblicazione.
Infine se vuoi che lo script di autenticazione sincronizzi automaticamente via API il
tuo `access_token` ed il tuo `personal_urn` senza che tu debba farlo manualmente ti basta inserire la
variabile di ambiente `GH_CSV`.
Nella variabile `GH_CSV` devi inserire sotto forma di CSV le seguenti informazioni:
- proprietario del repository
- nome del repository
- token (puoi generare un token di GitHub seguendo questa procedura: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)
Puoi inserire più repository inserendo il separatore `\n` dopo ogni repository, ad es.
```
GH_CSV=",,\n,,"
```
### Installazione dei requirements
Per installare le dipendenze di progetto lancia il seguente comando:
```bash
pip install -r requirements.txt
```
### Avvia il processo di autenticazione
Per avviare il processo di autenticazione:
```bash
python auth.py
```
Inserisci le credenziali Linkedin nel browser che ti apparirà e attendi la chiusura del browser.