51 lines
2.6 KiB
Markdown
51 lines
2.6 KiB
Markdown
# Bluesky DM to Telegram.
|
|
|
|
This script sends the last message from a specifiec Bluesky conversation with a Bluesky account to a Telegram bot.
|
|
|
|
## Variables
|
|
|
|
The script expects the following variables:
|
|
|
|
| Variables | Description |
|
|
| --- | --- |
|
|
| **WORKING_DIR** | Can be changed to whatever directory |
|
|
| **PDSHOST** | If your not hosting your own PDS it's probably *https://bsky.social* |
|
|
| **BLUESKY_HANDLE** | The handle of your Blueksy bot account, e. g. *my-bluesky-bot.bsky.social* |
|
|
| **BLUESKY_PASSWORD** | Either your Bluesky bot account's password or it's app password (https://bsky.app/settings/app-passwords) |
|
|
| **CONVO_ID** | Conversation-ID of the Bluesky bot account, can be retriefed by using get_messages |
|
|
| **CHAT_ID** | Chat-ID of the Telegram bot |
|
|
| **TOKEN** | Token for the Telegram bot |
|
|
|
|
## Setup
|
|
|
|
### 1. Create Bluesky bot account
|
|
- Create a new Bluesky account
|
|
- It's recommended to [create an app password](https://bsky.app/settings/app-passwords) for your Bluesky account and allow access to DMs
|
|
- Paste your PDS host's URL (**PDSHOST**), your account's handle (**BLUESKY_HANDLE**) and (app) password (**BLUESKY_PASSWORD**) into the script's respective variables
|
|
- Follow your main Bluesky account, so that it can send the bot account DMs
|
|
|
|
### 2. Create a Telegram bot
|
|
- Create a new bot using the [@BotFather](t.me/botfather)
|
|
- Paste the bot's token in the script as the **TOKEN** variable
|
|
- Send any message to the bot
|
|
- Visit https://api.telegram.org/bot<$TOKEN>/getUpdates and retrieve the **CHAT_ID**
|
|
- The URL should look something like this: `https://api.telegram.org/bot123456789:ABCdefGHI123_abcDEF/getUpdates`
|
|
- The **CHAT_ID** can be found in the following key `.results.0.message.chat.id`
|
|
|
|
### 3. Retrieve your CONVO_ID
|
|
- Login to your main Bluesky account and send any message to your Bluesky bot account
|
|
- Start the script using the argument `create_session` so retrieve the Bluesky token (*token.json*)
|
|
- Start the script again using the argument `get_message` to get the **CONVO_ID**
|
|
- Paste the output in the script as the **CONVO_ID**
|
|
|
|
## Usage
|
|
- Start the script without any argument
|
|
- The script should create the `bluesky.json` and `last_id.txt` files and send a message to your Telegram bot
|
|
- Now you can deploy the script e. g. using `rontab to run continously
|
|
|
|
## Files
|
|
|
|
The script createts and uses several files to store persistent variables.
|
|
- `bluesk.json` stores the latest Bluesky message ID, URI and poster's account handle
|
|
- `last_id.txt`stores the Bluesky message ID of the last message that was succesfully sent to Telegram
|
|
- `token.json` stores the Bluesky **ACCESS_JWT** and **REFRESH_JWT** token |