Сделал бота. Каждую секунду отправляю запросы к боту, получая обновления (https://api.telegram.org/bot ТОКЕН/getUpdates?offset=-1), а именно последнее сообщение, которое было отправлено пользователем.
Я отправляю боту некоторый текст, он его проверяет и выводит соответствующее сообщение.
Проблема заключается в том, что сообщение отправляемое ботом повторяется бесконечно. Как сделать так, чтобы я боту отправил сообщение, а он мне только один раз ответ.
Код который отправляет запросы
public void Listen(object state) < Bot.GetUpdates(); Bot.Update = JsonConvert.DeserializeObject(Bot.GetResponse()); if (Bot.Update.result[0].message.text == «/hello») Bot.SendMessage(«Test message»); >
Класс с ботом
class TelegramBot < private string Token; private byte[] Buffer = new byte[8192]; private HttpWebResponse Response; private Stream ResponseStream; public TelegramUpdates Update; StringBuilder ResposeString= new StringBuilder(); public TelegramBot(string InputToken) < Token = InputToken; >public void SendMessage(string InputMessage) < WebRequest Request = (HttpWebRequest)WebRequest.Create(«https://api.telegram.org/bot» + Token + «/sendMessage?chat_id=228451619+InputMessage+»»); Response = (HttpWebResponse)Request.GetResponse(); Request.Abort(); >public string GetResponse() < ResposeString.Clear(); ResponseStream = Response.GetResponseStream(); string tempString = null; int count = 0; do < count = ResponseStream.Read(Buffer, 0, Buffer.Length); if (count != 0) < tempString = Encoding.ASCII.GetString(Buffer, 0, count); ResposeString.Append(tempString); >> while (count > 0); return ResposeString.ToString(); > public void GetUpdates() < WebRequest Request = (HttpWebRequest)WebRequest.Create(«https://api.telegram.org/bot» + Token + «/getUpdates?offset=-1»); Response = (HttpWebResponse)Request.GetResponse(); >>
- Вопрос задан более трёх лет назад
- 7152 просмотра
Комментировать
Решения вопроса 1
How to Login Telegram Web App IOS or Android.
IT-шный jack-of-all-trades
Вам необходимо уйти от схемы с offset=-1 .
«getUpdates» возвращает вместе с сообщением update_id. Это число — Ваш offset. На стороне сервера, он всегда последовательно увеличивается.
Используйте этот offset, инкрементя его на +1 с каждым запросом, вернувшим новое сообщение. Можно сохранять номер offset на диск, чтобы он выживал при перезагрузках бота.
https://core.telegram.org/bots/api
> In order to avoid getting duplicate updates, recalculate offset after each server response.
Ответ написан более трёх лет назад
Спасибо большое. Теоретически все понятно. Не совсем пониамю что нужно в самом запросе написать. Не могли бы вы подсказать?
How to Update Telegram App Android
Алексей Игошев: Сделайте запрос также, как делаете сейчас.
Запрос вернёт update_id, который Вам нужно поймать (в void Listen), выведя на экран или в файл. Прибавьте к числу +1.
Это будет Вашей отрывной точкой offset, ниже которой Вы больше спускаться не будете. Сделайте это число глобальной переменной во всём боте.
Затем, все последующие GetUpdates совершайте как и сейчас, но с ‘offset=global_offset’
Если на запрос вернулось новое сообщение, прибавьте к глобальному offset единицу. Если новых сообщений не будет, то ответ вернёт отсутствие сообщений по такому offset-у.
Источник: qna.habr.com
Как исправить ошибку UPDATE_APP_TO_LOGIN в TLSharp C#
Привет, я использую TLSharp, последняя версия 0.1.0.574, и когда я звоню var hash = await client.SendCodeRequestAsync(«»); я получил ошибку System.InvalidOperationException: ‘UPDATE_APP_TO_LOGIN’ кто-нибудь знает, как это исправить
Мой код
TelegramClient client = new TelegramClient(appid, «apihash»,null,»session»,null,DataCenterIPVersion.OnlyIPv4); await client.ConnectAsync(); var hash = await client.SendCodeRequestAsync(«»); string code = «»; await client.SignUpAsync(«», hash, code, «», «last_name»);
OS Coder 8 Дек 2021 в 08:06
Этой версии больше года, и на странице GitHub написано, что проект больше не поддерживается. Связано: Python и telethon: ошибка входа UPDATE_APP_TO_LOGIN
Источник: question-it.com
Проблема с авто-регистрацией
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно.
Необходимо обновить браузер или попробовать использовать другой.
lamer007
Специалист
25.10.2021 6 2 3
Произошла непредвиденная ошибка — RPCError 406: UPDATE_APP_TO_LOGIN (caused by SendCodeRequest). В чём может быть дело? Проблема на сервисе sms-man.ru В 70% выдаёт, что номер в бане и в 30% RPCError 406. Через другой сервис всё идёт как по маслу. Из чего могу предположить, что проблема не в парах или проксях.
Хелп ми плиз.
PAKETA_TELEGRAM
Administrator
Команда форума
Администратор
03.04.2020 306 522 103 rutube.ru
скоро обнова софта
Toggle signature
Пишите в лс обсудим вашу будущую покупку , выдадим тест . Ответим на все вопросы!
или по контактам:
ТамТам https://tt.me/PAKETA_TG — тут онлайн 24ч
https://tt.me/accs = А тут много интересного.
Так же у меня вы можете приобрести лучшие аккаунты на рынке. (ssesion+json и t.data. ssesion+json для софта , т.дата -это обычная телега стандартная на компе.)
Если Вы нашли баг в нашей программе, а так же если у Вас возникли ЛЮБЫЕ вопросы/жалобы по форуму, программе, пишите: ТамТам https://tt.me/PAKETA_TG
https://rutube.ru/channel/27657423/
https://www.youtube.com/c/TelegramsoftPAKETATELEGRAM
178248605
Специалист
19.03.2021 7 0 1
lamer007
Специалист
25.10.2021 6 2 3
софт обновился. данной ошибки больше нет. но есть другая проблема. на сервисе sms-man.ru вижу что код из СМС получен, но софт в это время аккаунт не регистрирует, и начинает всё заново. в итоге как бы и деньги списали, и код пришёл, но акк не зареган. только у меня такая проблема или баг?
- 01:44:05 — поток № 0 — Берем номер из смс активации
- 01:44:08 — поток № 0 — Номер получен ХХХХХХХХХ
- 01:44:08 — поток № 0 — Используем прокси: ХХХХХХХХХХ
- 01:44:08 — поток № 0 — Идет подключение
- 01:44:12 — поток № 0 — Ждем код, следующий запрос через 5 секунд
- 01:44:18 — поток № 0 — Ждем код, следующий запрос через 5 секунд
- 01:44:23 — поток № 0 — Ждем код, следующий запрос через 5 секунд
- 01:44:29 — поток № 0 — Ждем код, следующий запрос через 5 секунд
- 01:44:34 — поток № 0 — Ждем код, следующий запрос через 5 секунд
- 01:44:40 — поток № 0 — Ждем код, следующий запрос через 5 секунд
- 01:44:47 — поток № 0 — Инициализация.
- 01:44:47 — поток № 0,Подключаем аккаунт
Jocker
Неофит
07.12.2021 3 0 1
Здравствуйте, такая же ошибка при авторегистрации с помощью sms-activate
— поток № 0 — Произошла непредвиденная ошибка — RPCError 406: UPDATE_APP_TO_LOGIN (caused by SendCodeRequest)
lamer007
Специалист
25.10.2021 6 2 3
софт опять обновился, но авто-рега так и не работает. в 22:30:28, где сессия удалена, это реакция на полученный код. по факту код на СМС сервис приходит, деньги списываются, а софт дальше не идёт. тестил много раз, всегда так, и это печально.
22:29:40 — поток № 2 — Берем номер из смс активации
22:29:46 — поток № 2 — Номер получен XXXXXXXXXXXXX
22:29:47 — поток № 2 — Используем прокси: XXXXXXXXXXXXX
22:29:47 — поток № 2 — Идет подключение
22:29:54 — поток № 2 — Ждем код, следующий запрос через 5 секунд
22:29:59 — поток № 2 — Ждем код, следующий запрос через 5 секунд
22:30:05 — поток № 2 — Ждем код, следующий запрос через 5 секунд
22:30:10 — поток № 2 — Ждем код, следующий запрос через 5 секунд
22:30:16 — поток № 2 — Ждем код, следующий запрос через 5 секунд
22:30:22 — поток № 2 — Ждем код, следующий запрос через 5 секунд
22:30:28 — XXXXXXXXXXXXX — session DELETED
22:30:28 — поток № 2 — жду 35 секунд!
22:31:04 — поток № 2 — Инициализация.
22:31:04 — поток № 2,Подключаем аккаунт
22:31:04 — поток № 2 — Используем пару указанную в списке.
Luxor
Administrator
Команда форума
Администратор
05.07.2019 854 1 343 93 rutube.ru
Здравствуйте, такая же ошибка при авторегистрации с помощью sms-activate
— поток № 0 — Произошла непредвиденная ошибка — RPCError 406: UPDATE_APP_TO_LOGIN (caused by SendCodeRequest)
софт опять обновился, но авто-рега так и не работает. в 22:30:28, где сессия удалена, это реакция на полученный код. по факту код на СМС сервис приходит, деньги списываются, а софт дальше не идёт. тестил много раз, всегда так, и это печально.
22:29:40 — поток № 2 — Берем номер из смс активации
22:29:46 — поток № 2 — Номер получен XXXXXXXXXXXXX
22:29:47 — поток № 2 — Используем прокси: XXXXXXXXXXXXX
22:29:47 — поток № 2 — Идет подключение
22:29:54 — поток № 2 — Ждем код, следующий запрос через 5 секунд
22:29:59 — поток № 2 — Ждем код, следующий запрос через 5 секунд
22:30:05 — поток № 2 — Ждем код, следующий запрос через 5 секунд
22:30:10 — поток № 2 — Ждем код, следующий запрос через 5 секунд
22:30:16 — поток № 2 — Ждем код, следующий запрос через 5 секунд
22:30:22 — поток № 2 — Ждем код, следующий запрос через 5 секунд
22:30:28 — XXXXXXXXXXXXX — session DELETED
22:30:28 — поток № 2 — жду 35 секунд!
22:31:04 — поток № 2 — Инициализация.
22:31:04 — поток № 2,Подключаем аккаунт
22:31:04 — поток № 2 — Используем пару указанную в списке.
Источник: blb.team