К основному контенту

Опыт создания телеграмм-бота для практического применения


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

Найти в поиске BotFather

Этот бот по имени рулит всеми ботами. Использовать его необходимо для создания новых ботов и для управления уже существующими.

Создать нового бота:
/newbot
Придумать имя для бота, например:
01alertmsg
Придумать уникальной идентификатор (должен оканчиваться на «bot»), например:
01alertmsg_bot
Как только бот будет создан, получится токен для подключения к Telegram API.
ТОКЕН: Это строка необходимая для авторизации бота и отправки запросов к Telegram API. Пример токена: XXXXXX:YYYYYYYyyyyYYYYYyyyYYYYYY

Получение Chat ID

CHAT ID: Чтобы отправить сообщение через Telegram API, боту необходимо указать ID чата в который он будет писать. ID чата будет сгенерирован в момент отправки первого сообщения вашему боту.
Начать чат с ботом:
В поиске найти по имени созданный бот
Отправьте команду:
/start
Чтобы узнать ID чата, откройте следующую ссылку в браузере: https://api.telegram.org/bot<ТОКЕН>/getUpdates 
(замените <ТОКЕН> на токен бота полученый при создании).
На открытой странице необходимо найти ID чата 
JSON -> result 

Ну и как следствие shell-скрипт для отправки сообщений 

#!/bin/sh

TOKEN=XXXXXX:YYYYYYYyyyyYYYYYyyyYYYYYY
CHAT_ID=XXXXXXXX
MESSAGE=$1
URL="https://api.telegram.org/bot$TOKEN/sendMessage"

/usr/local/bin/curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE"

Вызов скрипта
 sendmsg.sh "text message"
Очевидно, что имя скрипта произвольное.





Комментарии

Популярные сообщения из этого блога

Многономерной транк от Датагруп к Elastix 2.5

В очередной раз украли кабель укртелекома, и восстановление "через полгода", но городские надо. Поскольку есть сервер Elastix2.5, решение очевидно sip-trunk. Укртелеком на вопрос sip-trunk "отморозился" причиной "он нестабилен, он ненадежен, и т.п., берите облачную атс" (зачем мне облачная атс?) Побывав на IT-Forum2018, встретил (единственного!!!! на весь форум) оператора/провайдера Датагруп, выяснил, что возможность подключить транк есть и подходит под мои условия(nat,отсутствие "белого ip") ТЗ;  -sip-trunk на 3 номера и 10 голосовых сессий; -атс на базе Elastix2.5. После заключения всех договоров и оплаты подключения, получен заветный конверт с логином паролем и адресом подключения (и иными параметрами подключения), 1) создаем транк: меню Trunk / Add SIP trunk Рис.1 Создаем  (Рис.1) Trunk Name : "имя транка",  Outbound CallerID : логин из конверта Рис.2 Далее (Рис.2) Trunk Name : "имя транка...

FreeBSD полезности

Приглашение командной строки bash В файле /etc/profile добавляется строка PS1="\h\\$ "; export PS1 в этом виде: \h - имя компьютера до первой точки; \\$ - если UID пользователя 0 (su/root), то будет выведен символ # , иначе $; можно использовать и другие символы: \u - имя юзера; \H - полное имя компьютера; \d -текущая дата " день недели месяц число"; \n - символ новой строкиж; \r - возврат карретки; \t - время в 24 формате (ч:м:с); \T - время в 12 формате; \w - текущий каталог с полным путем; \W - название текущего каталога; $() - внешняя команда в скобках, например (date). Ошибка при запуске MC common.c: unimplemented subshell type 1 read (subshell_pty...): ... проверить export $SHELL если /bin/sh изменить на /bin/csh командой chsh -s /bin/csh root перезайти netstat -nr проверить текущий шлюз по умолчанию

Использование windows(samba) диска в linux

Как подключить сетевой диск Windows в Linux Поддержку сетевых дисков Windows в Linux обеспечивает пакет cifs-utils. Если он у вас еще не установлен, в командной строке от имени суперпользователя введите sudo apt install cifs-utils Создайте в /mnt (или любом другом месте) папку, в которую мы будем подключать сетевой диск Windows: mkdir /mnt/winshare И наконец само подключение сетевой папки Windows в Linux выполняется с помощью команды mount.cifs mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o username=WIN_USER_NAME,password=WIN_USER_PASSWORD Такая команда выполнит присоединение к фаловой системе Linux сетевого диска Windows с именем SHARE_NAME, расположенного на сервере с IP-адресом SERVER_IP от имени WIN_USER_NAME с паролем WIN_USER_PASSWORD.  В большинстве случаев этого достаточно, если вы работаете от лица суперпользователя. Если же вы от лица суперпользователя производите только подключение сетевой папки Windows, а работать с ней планируете от лица об...