Улучшил скрипт на bash для отсылки в телеграм, вся фишка скрипта в том что CHAT ID для бота всегда одинаковый, и нет необходимости каждый раз его получать по новой,достаточно получить его значение один раз скриптом, но прежде чем запустить скрипт для получения CHAT_ID необходимо поприветсовать в чате бота, ввести какое нить слово, скажем "Привет бот!" а после запустить скрипт, ну так будет лучше и наверняка!
: используя скрипт что ниже бота не обязательно приветсвовать, проверено!
upd: Напомню как получить бота и TOKEN для него
-----------------------------------------------------------------------
Откройте Telegram и найдите @BotFather:
Введите @BotFather в поле поиска и выберите официального бота.
Начните разговор с BotFather, отправив команду /start.
Создайте нового бота, отправив команду:
/newbot
Вам будет предложено выбрать имя для вашего бота. Введите любое имя, например MyFileSenderBot.
Затем выберите уникальное имя пользователя для бота, которое должно оканчиваться на bot, например, myfilesender_bot.
После создания бота BotFather отправит вам токен API — уникальную строку, что-то вроде 123456789:ABCdefGhIjkLmnoPQRStUvWxYz.
Сохраните этот токен.
этот токен следует подставить в скрипты , в скриптах это указано
-----------------------------------------------------------------------
далее следует скрипт дя получения CHAT_ID
#!/bin/bash
TOKEN="Подставить тут TOKEN вашего бота"
response="$(curl -s "https://api.telegram.org/bot$TOKEN/getUpdates")"
CHAT_ID="$(echo $response | grep -o '"chat":{"id":[0-9]*' | grep -o '[0-9]*' | head -n 1)"
echo "Получен Chat ID: $CHAT_ID"
далее зная TOKEN и CHAT_ID можем подставить их значение в скрипт что ниже, и по идее должно сработать без обращения к /getUpdates и файл и текст отошлются
улучшеный код который шлет файлы в telegram
#!/bin/bash
# Ваш токен бота
TOKEN="подставить Ваш токен бота"
CHAT_ID="подставить Chat ID " # Задайте ваш Chat ID вручную, чтобы не получать его каждый раз
# Получение содержимого из буфера обмена с использованием xsel
content="$(xsel --clipboard --output)"
# Проверка на наличие файла или текста
if [ -f "$content" ]; then
# Если это файл, отправляем его как документ
file_path="$content"
echo "Обнаружен файл: $file_path"
# Отправка файла как документ
response=$(curl -s -F "chat_id=$CHAT_ID" -F "document=@$file_path" "https://api.telegram.org/bot$TOKEN/sendDocument")
status=$(echo "$response" | grep -o '"ok":true')
if [ "$status" == '"ok":true' ]; then
echo "Файл успешно отправлен."
else
echo "Ошибка при отправке файла: $response"
fi
else
# Если это не файл, отправляем как текстовое сообщение
echo "Обнаружен текст: $content"
# Отправка текста как сообщение
response=$(curl -s --data "chat_id=$CHAT_ID&text=$content" "https://api.telegram.org/bot$TOKEN/sendMessage")
status=$(echo "$response" | grep -o '"ok":true')
if [ "$status" == '"ok":true' ]; then
echo "Текст успешно отправлен."
else
echo "Ошибка при отправке текста: $response"
fi
fi
я проверил код работает.
ниже ссылки на видеинструкцию
на mail.ru:
https://cloud.mail.ru/public/Ass1/YDuHYGxdkна ya-disk:
https://disk.yandex.ru/i/lr6mJa60I4knTg