Telegram bot api linux

Telegram API: Send Message – Personal Notification Bot

How about to get a push notification when some long-running job in Linux is completed?

Or how about to have a script in crontab that collects some data and periodically sends the reports to your mobile device?

This tutorial describes how to create a personal notification bot, that can send messages from the Linux command-line through the Telegram API.

Cool Tip: Install a Telegram’s app on Ubuntu and Linux Mint! Read more →

Telegram Messenger

Download and install the telegram messenger for your platform.

Start the telegram client and follow the registration process.

Create Telegram Bot

Start a conversation with the BotFather :

BotFather: The BotFather is the one bot to rule them all. Use it to create new bot accounts and manage your existing bots.

Choose a user-friendly name for your bot, for example:

Choose a unique username for your bot (must ends with “bot”), for example:

Once the bot is created, you will get a token to access the Telegram API.

TOKEN: The token is a string that is required to authorize the bot and send requests to the Telegram API, e.g. 4334584910:AAEPmjlh84N62Lv3jGWEgOftlxxAfMhB1gs

Get The Chat ID

CHAT_ID: To send a message through the Telegram API, the bot needs to provide the ID of the chat it wishes to speak in. The chat ID will be generated once you start the first conversation with your bot.

Start a conversation with your bot:

🔍 GLOBAL SEARCH -> MY_BOT_NAME -> START

To get the chat ID, open the following URL in your web-browser: https://api.telegram.org/bot /getUpdates (replace with your bot token).

If you prefer a Linux command-line interface, you can simply request the above URL from shell with curl , for example:

$ curl https://api.telegram.org/bot4334584910:AAEPmjlh84N62Lv/getUpdates . "chat":123456789,"first_name":"my_first_name","type":"private">.

Cool Tip: How to send a message to a Telegram channel using PHP! Read more →

Telegram Bot API: Send Message

Below i will show the examples of how to send a message through the Telegram API using a web-browser, curl and a Bash script.

Читайте также:  Vnc viewer linux debian

Web-Browser

To send the “Hello World” message using a web-browser, just open the URL:

https://api.telegram.org/bot /sendMessage?chat_id= &text=Hello%20World

Linux Command Line

Send a message from the Linux command-line interface, using curl :

$ curl -s -X POST https://api.telegram.org/bot /sendMessage -d chat_id= -d text="Hello World"

Bash Script

A simple Bash script that sends the “Hello World” message through the Telegram API:

#!/bin/bash TOKEN= CHAT_ID= MESSAGE="Hello World" URL="https://api.telegram.org/bot$TOKEN/sendMessage" curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE"

Cool Tip: Send emails through SMTP server using telnet from the Linux command-line interface! Read more →

24 Replies to “Telegram API: Send Message – Personal Notification Bot”

$ curl -s -X POST https://api.telegram.org/botsendMessage -d chat_id= -d text="Hello World"

Спасибо за статью.
При установленном торе в линукс пользуемся curl таким образом:
curl –socks5-hostname 127.0.0.1:9050 -s -X POST https://api.telegram.org/bot123456:fgflgfg-dfgfg-fgfgfgf/sendMessage -d chat_id=12345678 -d text=”proizvolniy text”

Ввиду судебных преследований можно использовать на своём заграничном сервере прослойки в виде php-скрипта, например вот этот:
https://github.com/mcnemesis/proxy.php

Some changes are required to make it work.
1. Don’t `/start` your bot before opening your token url.
2. Open your token url. (it should give you something like `<“ok”:true,”result”:[]>`
3. Go to your bot and `/start` it
4. Refresh your token url. (it should now give you some data) If you did `/start` your bot before opening your token url and got stuck at `<“ok”:true,”result”:[]>`, go to your bot and delete conversation. After that follow steps 3 and 4.

Источник

Telegram bot для Linux сервера: мониторинг, уведомления, управление

date

23.01.2020

user

VyacheslavK

directory

CentOS, Linux

comments

комментариев 8

В этой статье мы рассмотрим пример использования Telegram бота на сервере с Linux CentOS, покажем, как настроить простые уведомления в чат-бот для мониторинга вашего сервера, а также несколько управляющих команд.

В эпоху мобильных гаджетов, стало актуально использование различных мессенджеров не только для общения с реальными людьми, но и использование различных ботов. Например, в Telegram существует широкий функционал для бота, который можно использовать в различных целях — выдать информацию о заказе клиенту, информация по посылке у почтового оператора и, например, мониторинг собственного сервера.

Создание чат-бота в Telegram

Для создания чат-бота в Telegram используется бот @BotFather. Чтобы создать своего бота, нужно найти @BotFather у себя в Telegram и перейти в чат с ним:

Читайте также:  Linux ip route onlink

BotFather создать нового бота telegram

Нажмите START. Чтобы создать нового бота, выберете в меню /newbot, введите имя бота в формате “имя_bot». После создания бота, вы получите API токен бота, который нужен будет в дальнейшей настройке.

получить API токен бота телеграм

Теперь нужно узнать user_id — это ID часа с ботом, в который он будет отправлять уведомления. Перейдите в ваш с ним чат и нажмите старт и отправить любой символ. После этого в браузере перейдите по адресу:

https://api.telegram.org/bot/getUpdates — где это API который выдал BotFather.

user_id бота telegram

На скриншоте выделен ваш ID.

Итак, мы создали бота в Telegram и получили авторизационные данные.

Отправка в чат Telegram уведомлений с сервера

С помощью ранее созданного бота и полученных ID можно отсылать с сервера уведомления в Telegram чат, и таким образом получать какие-то интересные нам данные или алерты.

Для отправки сообщения в чат, нужно использовать следующий URL:

# curl -s -X POST https://api.telegram.org/bot944496485:AAEtGaGCVrQ7d26Rc3r_cqXPIhrKVokh8e4/sendMessage -d chat_id=336116180 -d text=»Доброе утро, страна»

отправка сообщений в telegram бот через api и url

Для чего можно использовать такие Telegram уведомления? Например, при создании резервной копии вы можете отправлять уведомления о ее создании или же отправлять ссылку на скачивание копии в чат с ботом. Вы можете отправлять себе в Telegram уведомления с информацией о сбоях в системе. Можно добавить в крон выполнение каких-либо проверок с последующей отправкой в Telegram.

Еще пример использования подобных уведомлений:

# curl -s -X POST https://api.telegram.org/bot944496485:AAEtGaGCVrQ7d26Rc3r_cqXPIhrKVokh8e4/sendMessage -d chat_id=336116180 -d text=» User $(whoami) logged into $(hostname) on $(date) from $(echo $SSH_CLIENT | awk ‘< print $1>‘)» &>/dev/null 2>&1

Добавьте этот код в /etc/profile и будете получать уведомления в Telegram при каждом входе пользователей на сервер:

отправка сообщений в telegram через post и curl

Хочу напомнить, что во всех командах, нужно указывать именно своей token(API) и ID чата.

Управление Linux сервером в чат-боте Telegram

Есть набор скриптов, которые позволяет управлять сервером Linux из Telegram чата, отправляя различные команды в чат с ботом. Для этого нужно установить Python, ряд инструментов и загрузить на сервер скрипты.

# wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
# yum install xz -y
# tar -xpJf Python-3.6.0.tar.xz
# cd Python-3.6.0
# yum groupinstall «Development tools» -y

# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel -y
# ./configure
# make
# make install

установка Python 3 в centos 7

Создайте симлинк для Python:

# ln -s /usr/local/bin/python3 /usr/bin/python3

И установите ПО для самого бота:

# pip3 install python-telegram-bot —upgrade

pip3 install python-telegram-bot

Теперь скачайте и распакуйте к себе на сервер в каталог root/admin три файла из архива telegram_bot.zip:

Рассмотрим файл config.py. В нем нам нужно указать token(API) и ID вашего чата с ботом, а также путь до директорий с бэкапами и директории, размер которой вы будете в дальнейшем проверять:

Читайте также:  Linux add user to sudoer

config.py настройки telegram бота

Файл bot.sh не требует настройки, в нем лишь указываем путь до bot.py:

bot.sh

И самый основной файл, который собственно и позволит нам управлять сервером, это bot.py. В нем описаны функции, которые будут доступны в чате с ботом и собственно туда, мы можем добавлять свой собственный функционал. Например, в первом блоке описываются доступные команды бота в чате:

python скрипт для telegram бота

Тут описываются все функции, которые будут доступны, после ввода команды /help.

Ниже описывается сама функция, например,

#функция команады ifconfig def ifconfig(bot, update): reload(config) user = str(update.message.from_user.id) if user in config.admin: #если пользовательский id в списке admin то команда выполняется run_command("ifconfig") bot.sendMessage(chat_id=update.message.chat_id, text=textoutput)

И эту функцию, нужно описать как команду:

ifconfig_handler = CommandHandler('ifconfig', ifconfig) dispatcher.add_handler(ifconfig_handler)

То есть как видим, это выполнение стандартной функции проверки сетевых настроек ifconfig.

При знакомстве с ботом я попытался добавить собственную команду, например для проверки Apache:

Но только через настройку данного файла это не сработало. Как я понял, здесь можно выполнить только команду описанную одним словом или символами. Я решил проблему создав файл apache_status.sh с содержимым:

#!/bin/bash
service httpd status

# ln -s /root/admin/apache_status.sh /usr/local/sbin/apachestatus

Теперь при вызове команды apachestatus, у меня выводит статус веб-сервера apache:

apachestatus

В файле bot.py я заполнил все три блока, согласно других функций. Чтобы bot заработал, нужно запустить файл bot.sh. Для удобства, создадим отдельный сервис для Telegram бота. Создаем нужный файл и выставляем права:

# touch /etc/systemd/system/telegram-bot.service
# chmod 664 /etc/systemd/system/telegram-bot.service

После чего заходим в файл сервиса:

[Unit] Description=Telegram bot After=network.target [Service] ExecStart=/root/admin/bot.sh [Install] WantedBy=multi-user.target

# systemctl start telegram-bot.service
# systemctl enable telegram-bot.service
# systemctl status telegram-bot.service

Теперь, если в чате с вашим ботом ввести /help, вы получите список доступных команд.

список доступных команд в telegram боте

Например, в данный момент у меня на сервере остановлен веб-сервер Apache:

команда состояния сервера в telegram боте

Запустим его на сервере и проверим статус через Telegram:

проверка статуса apache из telegram

Еще несколько примеров выполнения команд:

команды для сервера linux в telegram боте

Таким образом, вы можете выполнять мониторинг своего Linux сервера или даже частичное администрирование через Telegram, что поможет сильно сократить время на выполнение типовых действий.

Так же хотел бы заметить, что авторизация сервера с ботом происходит именно по ID и token(API) (любой другой человек, не зная ваших данных, подключиться не сможет).

На момент выпуска статьи, тестовый бот удален.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Источник

Оцените статью
Adblock
detector