Хочу, чтобы бот (TelegramLongPollingBot) периодически писал в беседу, что он онлайн и при этом удалял прошлое такое свое оповещение. Код для удаления старого сообщения:
public void onUpdateReceived(Update update) {
if (update.getMessage().getText().equals("Bot is online"))
{
//пауза несколько минут
DeleteMessage deleteMessage = new DeleteMessage();
deleteMessage.setChatId(update.getMessage().getChatId());
deleteMessage.setMessageId(update.getMessage().getMessageId());
execute(deleteMessage);
}
}
Оказалось, что метод onUpdateReceived() вообще не перехватывает сообщения самого бота (но мои сообщения "Bot is online" удаляются).
upd. В мануале нашел: Why doesn't my bot see messages from other bots? Bots talking to each other could potentially get stuck in unwelcome loops. To avoid this, we decided that bots will not be able to see messages from other bots regardless of mode.
Но ведь для удаления сообщения нужно знать его id, а до отправки id неизвестен. Как мне решить эту проблему?
Можно узнать id сообщения при его отправке. Решение:
public void sendMsg(String text)
{
SendMessage message = new SendMessage().setChatId(chatId).setText(text);
Message sentOutMessage=execute(message);
if (text.equals("Bot is online"))
{
DeleteMessage deleteMessage = new DeleteMessage();
deleteMessage.setChatId(sentOutMessage.getChatId());
deleteMessage.setMessageId(sentOutMessage.getMessageId());
//пауза
execute(deleteMessage);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
не могу понять почему не работает, делаю приложение на андроид 44 в java, три кнопки и текст на экране, каждая кнопка меняет текст, но почему то не работает,...
Хочу организовать программу в которой ~1-3 секунды пользователь отсылает запрос на сервер который должен обработать быстро информацию и отправить...
Хочу на страницах создаваемого сайта отлавливать сабж (допустим 30 сек ни мышки, ни клавы, ни тачпада, ни ресайза) и запускать какую-нибудь...