Я хочу реализовать некоторые функции, такие как пользователь, отправить мне сообщение, и я отвечаю ему с моим (бот) последним сообщением из истории чата.Bot api, как я могу получить последнее сообщение или историю чатов?
ответ
Как вы можете видеть в Telegram Bot API Documentation, вы можете использовать sendMessage
, чтобы отправить сообщение пользователю.
Когда вы получаете сообщение, найдите параметр chat
или from
в JSON (зависит от того, хотите ли вы ответить человеку, когда он является групповым чатом или нет). Вы можете использовать параметр id
chat
или from
для отправки сообщения.
Таким образом, первый параметр для SendMessage будет chat_id=message.chat.id
Вам не нужно parse_mode
, disable_web_page_preview
и reply_markup
для этого примера.
Как вы хотите ответить на сообщение пользователя, вы можете установить reply_to_message_id
в идентификатор полученного сообщения.
reply_to_message_id = message.message_id
Последнее, но не менее, вы хотите установить параметр text
. Если я правильно ее понимаю, ваша программа отправит пользователю последнее полученное message.text
.
Так что вы хотите сделать, как только получите сообщение, сохраните его.
Message oldMessage = message
И когда вы посылаете сообщение пользователю использовать старые сообщения text
свойство как текст.
text = oldMessage.text
Хорошо подводить итоги здесь псевдокод функции, что будет происходить, как только вы получите сообщение:
Message oldMessage = null;
public void NewMessage(Message message){
int chat_id = message.chat.id;
int reply_to_message_id = message.message_id;
String text = "There is no old Message"; //fallback value
if(oldMessage != null){
text = oldMessage.text;
}
//Send Message in this example only has 3 parameters, and ignores the
//not used ones
SendMessage(chat_id,text,reply_to_message_id);
oldMessage = message; //store the received message for future answering
}
Как вы храните все сообщение в oldMessage
вы можете также установить текст, который вы отправите примерно так:
String text = oldMessage.from.first_name+": "+oldMessage.text;