Telegram API предлагает широкие возможности для разработчиков, желающих интегрировать Telegram в свои приложения или создавать ботов. Одним из нестандартных, но интересных способов взаимодействия с Telegram API является использование Bash, командной оболочки Linux. Этот подход может быть особенно полезен для автоматизации простых задач, например, отправки уведомлений или обновлений.
Перед началом работы с Telegram API через Bash необходимо выполнить несколько шагов:
apt install curl jq
Отправка Сообщений. Чтобы отправить сообщение через Telegram API, используйте следующую команду Bash:
#!/bin/bash TOKEN="ваш_токен" CHAT_ID="id_чата" MESSAGE="Ваше сообщение" URL="https://api.telegram.org/bot$TOKEN/sendMessage" curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE"
Получение Обновлений. Для получения обновлений (например, сообщений, отправленных вашему боту), используйте:
#!/bin/bash TOKEN="ваш_токен" URL="https://api.telegram.org/bot$TOKEN/getUpdates" curl -s $URL | jq .
В листинге описаны несколько функций на bash для отправки сообщений, фотографий и любых документов в чат. Вам нужно задать свой токет и чат id (не забывает добавлять минус, если отсылаете в группу).
#!/bin/bash TOKEN='Enter your data' CHAT_ID='Enter your data' DATE=$(date +%Y-%m-%d) HOSTNAME=$(hostname -f) SCRIPT_NAME=${BASH_SOURCE[${#BASH_SOURCE[@]} - 1]} SUBJECT="$DATE ${HOSTNAME} -> ${SCRIPT_NAME}" # Function to send message to Telegram send_message() { if [[ $1 != 0 ]]; then MESSAGE=$(cat /tmp/backup_log) curl \ --data parse_mode=HTML \ --data chat_id=${CHAT_ID}} \ --data text="<b>${SUBJECT} </b>%0A<code>${MESSAGE}</code>" \ --request POST https://api.telegram.org/bot${TOKEN}/sendMessage fi exit 0 } #echo "#### TEST sendMessage ####" > /tmp/backup_log #send_message 1 # Function to send a file to Telegram send_file() { local file_path="$1" local caption="$2" curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendDocument" \ -F "chat_id=$CHAT_ID" \ -F "document=@$file_path" \ -F "caption=$caption" } #send_file "$1" "Your file is here." > /dev/null #send_file "/tmp/pdf.pdf" "$DATE ${HOSTNAME} -> ${SCRIPT_NAME}" # Function to send a photo to Telegram send_photo() { local file_path="$1" local caption="$2" curl -s -X POST "https://api.telegram.org/bot${TOKEN}/sendPhoto" \ -F "chat_id=$CHAT_ID" \ -F "photo=@$file_path" \ -F "caption=$caption" } #send_photo "/tmp/screenshot.png" "$DATE ${HOSTNAME} -> ${SCRIPT_NAME}"
Использование Bash для работы с Telegram API имеет свои преимущества и ограничения. Среди преимуществ:
Однако, есть и ограничения:
Использование Telegram API через Bash представляет собой удобный способ для выполнения базовых задач, связанных с автоматизацией и отправкой уведомлений. Этот метод хорошо подходит для простых сценариев использования, но для более сложных задач рекомендуется использовать более мощные языки программирования, такие как Python или JavaScript, например 5 вариантов Запуска скрипта на Python в Linux в фоновом режиме.