Telegram Bot — сброс пользовательских настроек при удалении/очистке чата

Я использую библиотеку Java для Telegram Bots Api: https://github.com/rubenlagus/TelegramBots

Мне интересно, можно ли определить, когда бот удаляется из списка контактов пользователя?
Я хотел бы обработать это событие, чтобы удалить пользовательские настройки (например, язык) из базы данных, чтобы в следующий раз пользователь добавил мой бот, он может задавать настройки с нуля и не зацикливаться на выбранных ранее.

РЕШЕНИЕ НАЙДЕНО

Я описал свое решение ниже.


person konata    schedule 12.06.2016    source источник
comment
Вы уверены, что сброс настроек пользователя при отправке команды /start — это хорошая идея?   -  person ariaby    schedule 14.06.2016
comment
@ariaby Я думаю, что это вполне нормальное решение, потому что команда /start не отображается в списке всплывающих команд, поэтому ее нельзя выбрать случайно. Он предназначен для отправки только в 2-х случаях: 1) когда пользователь впервые добавляет вашего бота; 2) при очистке истории пользовательского бота и перезапуске чата. Если пользователь отправляет команду /start вручную, он может ожидать точно такое же поведение, как описано выше.   -  person konata    schedule 16.06.2016
comment
Возможно, вы захотите написать свой собственный ответ и принять его, чтобы люди могли проголосовать за ответ.   -  person Johannes Kuhn    schedule 16.06.2016
comment
@JohannesKuhn да, я сделаю это, спасибо.   -  person konata    schedule 19.06.2016


Ответы (2)


Это невозможно, потому что вы не получите уведомление, когда пользователь удалит бота. Единственная ошибка, которую вы получаете, это когда вы пытаетесь отправить сообщение пользователю, который заблокировал бота.

person ariaby    schedule 13.06.2016

Хорошо, кажется, я нашел возможное решение.
Надеюсь, оно кому-нибудь поможет.

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

Также см. обсуждение выше: Telegram Bot — сброс настроек пользователя об удалении/очистке чата

person konata    schedule 18.06.2016
comment
Любить это! Это особенно полезно, когда бот все еще находится в состоянии разработки. Вручение команды start будет интуитивно понятным способом для разработчика бота начать разговор с пользователем из .. ну, начнем. Спасибо тебе за это! - person swdev; 26.10.2019