Список обновлений
Evogram поддерживает все события, которые доступны в Telegram API. Рассмотрим, какие события существуют и какую информацию мы получаем.
message
Событие message
срабатывает каждый раз, когда пользователь отправляет сообщение в чат или боту. Мы получаем UserMessageContext
, с помощью контекста мы можем отправлять сообщения, получать информацию о пользователе, чате.
client.updates.on("message", (message) => {
message.send(`${message.user.fullname}, спасибо что написали нам!`);
});
edited_message
Событие edited_message
срабатывает каждый раз, когда пользователь редактирует уже отправленное сообщение в чате или боту. Мы также получаем UserMessageContext
, но уже с обновленным текстом сообщения.
client.updates.on("edited_message", (message) => {
message.send(`${message.user.fullname}, вы изменили свое сообщение!`);
});
channel_post
Событие channel_post
срабатывает каждый раз, когда в канале появляется новое сообщение. Мы получаем MessageContext
, который содержит информацию о сообщении и канале, а также отправителе и т.д.
client.updates.on("channel_post", (post) => {
console.log(`В канале "${post.chat.title}" опубликован пост ${post.authorSignature ? `(от ${post.authorSignature})` : ``}`)
});
edited_channel_post
Событие edited_channel_post
срабатывает каждый раз, когда отправленное сообщение в канале было изменено. Мы получаем MessageContext
.
client.updates.on("edited_channel_post", (post) => {
console.log(`В канале "${post.chat.title}" отредактирован пост ${post.authorSignature ? `(от ${post.authorSignature})` : ``}`)
});
inline_query
Событие inline_query
срабатывает каждый раз, когда пользователь использует инлайн-режим бота. Мы получаем InlineQueryContext
, который содержит текст запроса и данные о пользователе.
client.updates.on("inline_query", (query) => {
query.answer([{
id: "1",
type: "article",
title: "Привет, мир!",
description: "Это образец статьи.",
input_message_content: {
message_text: "Вы выбрали статью 'Привет, мир!'"
}
}]);
});
chosen_inline_result
Событие chosen_inline_result
срабатывает каждый раз, когда пользователь выбирает результат из списка, который мы отправляем ему в ответ на его инлайн-запрос. Мы получаем ChosenInlineResultContext
, который содержит информацию о выбранном результате и пользователе.
client.updates.on("chosen_inline_result", (result) => {
console.log(`Пользователь ${result.user.fullname} выбрал результат с ID ${result.id}`);
});
callback_query
Событие callback_query
срабатывает каждый раз, когда пользователь нажимает на кнопку в сообщении. Мы получаем CallbackQueryContext
, который содержит информацию о пользователе, чате и нажатой кнопке.
client.updates.on("callback_query", (query) => {
query.answer({
text: "Вы нажали на кнопку!",
show_alert: true
});
});
shipping_query
Событие shipping_query
срабатывает, когда пользователь запрашивает информацию об оплате и доставке. Мы получаем ShippingQueryContext
, который содержит информацию о пользователе и запросе на доставку.
client.updates.on("shipping_query", (query) => {
console.log(`Пользователь ${query.user.fullname} запрашивает информацию о доставке`);
query.answer(true);
});
pre_checkout_query
Событие pre_checkout_query
срабатывает, когда пользователь запрашивает проверку перед оформлением заказа. Мы получаем PreCheckoutQueryContext
, который содержит информацию о пользователе и заказе.
client.updates.on("pre_checkout_query", (query) => {
console.log(`Пользователь ${query.user.fullname} запросил предварительную проверку перед оформлением заказа.`);
});
poll
Событие poll
срабатывает каждый раз, когда пользователь создает опрос в чате. Мы получаем PollContext
, который содержит информацию об опросе.
client.updates.on("poll", (poll) => {
console.log(`Создан опрос: '${poll.question}'`);
});
poll_answer
Событие poll_answer
срабатывает каждый раз, когда пользователь голосует в опросе. Мы получаем PollAnswerContext
, который содержит информацию о пользователе и ответах.
client.updates.on("poll_answer", (answer) => {
console.log(`Пользователь ${answer.user.fullname} проголосовал в опросе`);
});
my_chat_member
Событие my_chat_member
срабатывает каждый раз, когда ваш бот присоединяется/покидает/был исключён из чата. Мы получаем ChatMemberContext
, который содержит информацию о пользователе и состоянии участия бота в чате.
client.updates.on("my_chat_member", (member) => {
console.log(`Бот был ${member.newChatMember.status} из чата ${member.chat.title}`);
});
chat_member
Событие chat_member
срабатывает каждый раз, когда пользователь присоединяется/покидает/был исключён из чата. Мы получаем ChatMemberContext
, который содержит информацию о пользователе и состоянии участия пользователя в чате.
client.updates.on("chat_member", (member) => {
console.log(`${member.user.fullname} был ${member.newChatMember.status} из чата ${member.chat.title}`);
});
chat_join_request
Событие chat_join_request
срабатывает каждый раз, когда пользователь отправляет запрос на вступление в группу. Мы получаем ChatJoinRequestContext
, который содержит информацию о пользователе и группе.
client.updates.on("chat_join_request", (request) => {
console.log(`Пользователь ${request.user.fullname} запрашивает вступление в группу ${request.chat.title}`);
request.approve()
});