Перейти к основному содержимому

Список обновлений

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()
});