Работа с Telegram Bot Api

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Привет, камрады!

Никогда не сталкивался с Telegram Bot Api, играюсь с запросами, но никак не доходит принцип.
Возьмем сферического бота в вакууме. Задача - запустить его командой /start, получить ответ и прочитать его.
Ну как отправить боту сообщение, вроде понятно:


А как прочитать его отклик, т.е. взять последнее сообщение в чате?

Видимо, должно быть что-то вроде, но :

https://api.telegram.org/bot{-Variable.token-}/getUpdates?chat_id={-Variable.chat_id-}&offset=1

Пока не выходит каменный цветок..
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 765
Благодарностей
2 407
Баллы
113
Ну как отправить боту сообщение, вроде понятно:
https://api.telegram.org/bot_token/sendMessage?chat_id=ID&text=/start
Значит, Вам ничего не понятно, так как данный запрос отправляет сообщение пользователю, а не боту.

Видимо, должно быть что-то вроде, но :
https://api.telegram.org/bot{-Variable.token-}/getUpdates?chat_id={-Variable.chat_id-}&offset=1
Правильно, так и должно быть.
Но, что именно по Вашему значит offset=1?
Вы его указали "железно"...
А ведь при каждом обновлении Вам нужно к данному значению добавлять +1, чтобы получить последнее доступное обновление.
Если его указать в виде 1 - он не будет изменяться при каждом запросе, а значит, Вы не сможете получить желаемое последнее обновление...
 

VVlad1973

Новичок
Регистрация
13.11.2022
Сообщения
1
Благодарностей
1
Баллы
3
Нет такого - взять последнее сообщение в чате. Мы берем не сообщения в чате, а те updates, которые отдает нам Телеграм. И тут два варианта:

1. Выгребать их руками через getUpdates. И выгребать все. После чего с ними можно уже как-то работать, анализировать, складировать, отвечать. Это как на почте: пришла посылка, забирай, дома смотри, что там пришло. Но в квитанции о получении изволь расписаться. Такого, что я тут возьму пятое с конца сообщение в чате - этого нет, эти сообщения для бота Телега не хранит.

2. Настроить их получение на веб-сервисе посредством webhook. Вы поднимаете у себя web-приложение, оно получает запросы POST от Телеграмма. И дальше решает, что с ними делать исходя из своей логики.

И в первом, и во втором случае - это не работа с чатом, а работа с событиями в чате.

Возьмем сферического бота в вакууме. Задача - запустить его командой /start, получить ответ и прочитать его.
А как прочитать его отклик, т.е. взять последнее сообщение в чате?
 
  • Спасибо
Реакции: bizzon

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)