Нотификации через бот телеграмма

mendel
На сайте с 06.03.2008
Offline
232
1796

Написать своего бота для телеги не просто, а очень просто.

Я накидаю тут самые основы, а там каждый уже в зависимости от своего окружения напишет нужный код.

Итак. Первым делом создаем бота. Для этого:

"здороваемся" с роботом @botfather​,

отвечаем на его вопросы и получаем АПИ_КЕЙ для нашего свежерегнутого бота.

Всё. У нас есть робот и мы можем им управлять.

Мне не удалось уговорить АПИ отправлять по логину, так что нужен ИД пользователя которому отправляем сообщения.

Получить ИД не сложно. Нужно отправить сообщение нашему боту, и через АПИ посмотреть кто ему писал.

Там мы увидем свой ИД.

Пример того как получить последние сообщения отправляемые боту:


<form action="https://api.telegram.org/bot***API_KEY***/getUpdates" method="POST">
<button type="submit">
Info!
</button>
</form>

Ну и теперь отправим себе сообщение от имени бота:


<form action="https://api.telegram.org/bot***API_KEY***/sendMessage" method="POST">
<input type="text" name="chat_id" plaseholder="chat_id">
<br>
<textarea name="text">test text</textarea>
<br>
<button type="submit">
Send!
</button>
</form>

Я специально оформил в виде форм, поскольку у каждого фреймворка свой апи, а из примера с формой можно и поэкспериментировать и очевидно как переделать под свой апи.

В принципе для нотификаций этого достаточно.

Ссылка на описание АПИ: https://core.telegram.org/bots/api

Для получения сообщений от робота лично мне больше нравится вариант регистрации у них вебхука по которому они отправляют сообщения, но тут на вкус и цвет.

Шутку любишь над Фомой, так люби и над собой. (с) народ. Бесплатные списки читабельных(!) свободных доменов (http://burzhu.net/showthread.php?t=2976) (5L.com) Сайты, All inclusive. 5* (/ru/forum/962215)
TF-Studio
На сайте с 17.08.2010
Offline
334
#1

https://packagist.org/packages/telegram-bot/api

так чуть проще, имхо

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
mendel
На сайте с 06.03.2008
Offline
232
#2
TF-Studio:
так чуть проще, имхо

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

Хотя да, вероятность что она будет дольше поддерживаться в актуальном состоянии выше чем у просто трех строк кода.

С другой стороны - ну а что тут сложного то?

Samail
На сайте с 10.05.2007
Offline
369
#3
TF-Studio:
так чуть проще, имхо

По моему так сложнее. Для отправки простых уведомления хватит одной строки:

file_get_contents('https://api.telegram.org/<TOKEN>/sendMessage?chat_id=-<ID_чата>&text=текст_сообщения');
TF-Studio
На сайте с 17.08.2010
Offline
334
#4

для отправки уведомлений простых - так внутри мы и сделали. массив адресатов и система уведомлений. крайне удобная штука. отправка в 1 строку.

но потом захочется сделать запрос на данные, ещё что-то...

mendel
На сайте с 06.03.2008
Offline
232
#5
TF-Studio:
ещё что-то...

Ну тема в первую очередь в продолжение темы о заказах колбека где упорно все тычют смсшлюз в качестве "самой простой" нотификации. Так что тему я создал именно в качестве ответа по простоте.

А к вопросу "еще что-то" я в догонку создал соседнюю тему).

Одно дело использовать готовый класс, другое дело написать свой.

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

danforth
На сайте с 18.12.2015
Offline
153
#6

Писал бота нам в приватную конфу, что-то вроде Добби, если нужен id приватного чата, то нужно зайти в веб-морду телеграма, зайти в чат и скопировать из урла значения типа ?=s10104129491, берем циферки, и к началу клеим -100. Это и будет id приватного чата. Сам по себе бот ради забавы был написан.

Junior Web Developer

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий