Як створити бота для Telegram

У цій статті розглядається, як підключити ваш Telegram-бот, а також наведено основи роботи з каналами та групами.

circle-exclamation

Вимоги та обмеження Telegram

Створення Telegram-бота

Telegram-бот створюється через BotFather, офіційну систему керування ботами Telegram. Цей перевірений інструмент (позначений синьою галочкою) дає змогу створити бота без жодних знань програмування та захищає вас від шахрайських копій.

Кроки створення:

  1. Почніть чат на BotFatherarrow-up-right.

  2. Надішліть команду: /newbot

  3. Виберіть назву для свого бота (це відображувана назва для користувачів).

  4. Виберіть ім'я користувача для свого бота. Воно має закінчуватися на bot або _bot (наприклад, my_test_bot).

Якщо ім'я користувача доступне, BotFather надішле вам повідомлення з підтвердженням, яке міститиме "token"— унікальний ключ для доступу до API.

Важливо: Цей токен — це пароль вашого бота. Збережіть його в безпечному місці та ніколи не передавайте його нікому.

Перейдіть до Месенджери , виберіть Telegram, і вставте токен вашого бота у надане поле.

Натисніть Готово кнопку, щоб завершити налаштування бота та активувати підключення до вашого проєкту.

Робота з групами/каналами Telegram

Корисна інформація

Група Telegram — це канал спілкування між учасниками: усі учасники можуть писати в ній.

Канал Telegram — це односторонній засіб комунікації. Лише власник або адміністратори можуть надсилати повідомлення, тоді як решта учасників можуть лише переглядати їх і залишати коментарі.

Як додати бота до групи/каналу Telegram

Ця функція для бота включена в BotFather:

Крок 1. Перейдіть до налаштувань бота:

Крок 2. Натисніть на "Allow Groups?'"

Крок 3. Має бути статус увімкнено.

Додайте бота як адміністратора в групі/каналі

Щоб автоматизувати роботу в чатах і каналах, потрібно додати власного бота як адміністратора.

Як це зробити?

Крок 1. Перейдіть до керування групою/каналом і виберіть Адміністратори вкладку

Крок 2. Натисніть "Add Admin" кнопку.

Крок 3. Введіть ім'я користувача вашого бота в поле пошуку.

Крок 4. Для повної функціональності переконайтеся, що бот має права читати та видаляти повідомлення.

Змінні для роботи в чатах

circle-exclamation
  • Змінні з інформацією про автора повідомлення

message_from - ID автора повідомлення

message_from_name - ім'я автора повідомлення

message_from_username - нік автора повідомлення в Telegram

  • Змінні з інформацією про переслане повідомлення

reply_message_id - номер повідомлення, яке пересилається

reply_from - хто є автором пересланого повідомлення

reply_from_name - ім'я людини, чиє повідомлення пересилається

reply_from_username - нік людини, чиє повідомлення пересилається

reply_from_chat_id - номер діалогу, з якого було переслано повідомлення

  • Додавання та видалення з групи

У цьому випадку спрацьовують callbacks new_chat_member і left_chat_member (змінні не зберігаються в картці клієнта):

chat_member_name - ім'я користувача

chat_member_username - нік користувача

chat_member_id - номер користувача

Callbacks у Telegram

client_unsubscribed - клієнт відписався, заблокував бота

client_returned - клієнт розблокував бота

Callbacks у групах/каналах

new_chat_member - додано нового користувача

left_chat_member - користувач залишив канал

kicked_chat_member - користувача видалено адміністратором

chat_join_request - отримано запит на приєднання до каналу

edited_channel_post - допис у каналі було відредаговано (edited_channel_post + дата й час редагування)

Callbacks відображаються в Клієнти розділі

bot_added_to_group - бота додано до чату (неважливо до якого, він відповість на будь-який, навіть якщо підключеного бота було додано до групи самостійно);

bot_left_group - подібний callback виникає під час видалення бота з каналу;

new_like - поставлено лайк допису

like_deleted - лайк до допису видалено

Число в callback (new_like; like_deleted) — це ID повідомлення, на яке відповіли або з якого було видалено реакцію.

circle-exclamation

Коли callbacks з реакціями з'являються в групах, у блоці доступні змінні:

reaction_on_message_id - містить ID повідомлення, на яке було відреаговано

reaction_from - id того, від кого була реакція

message_from_username - username того, від кого була реакція (якщо є)

reaction_from_name - ім'я того, від кого була реакція

Також, якщо Telegram відповідає на повідомлення, змінна reply_text у картці міститиме повний текст повідомлення, на яке було дано відповідь.

Якщо повідомлення було надіслано як відповідь (цитування попереднього повідомлення), система також згенерує tg_quote змінну, яка містить цитований текст.

Callbacks з boost

  • chat_boost_from user #{id_user} - надав boost чату (або каналу):

Коли цей callback спрацьовує, генеруються змінні:

  • remove_boost_from user #{id_user} - забрали boost у чату (або каналу):

Коли цей callback спрацьовує,, генеруються змінні:

  • chat_boost from giveaway - видано під час розіграшу зірок у каналі

  • remove_chat_boost from giveaway - період boost для розіграшу зірок у каналі завершився

Як автоматизувати видалення системних сповіщень у групах

Щоб автоматично видаляти всі системні повідомлення, достатньо присвоїти будь-яке значення змінній del_tg_system_messages (змінна може бути як константою проєкту, так і змінною транзакції) і надати боту дозвіл на видалення повідомлень.

Змінну del_tg_system_messages можна використовувати лише в групах. У каналах присвоєння будь-якого значення цій змінній не дасть жодного результату.

Права адміністратора в налаштуваннях групи Telegram

Видаляються такі типи системних сповіщень:

- Назву групи змінено

- Фото групи змінено

- Фото групи видалено

- Повідомлення закріплено

- Користувач приєднався до групи

- Користувач покинув групу

Якщо ви хочете видаляти лише вибрані типи системних сповіщень, то замість змінної del_tg_system_messages створіть змінну del_tg_chosen_messages і помістіть у неї масив із типами сповіщень, які потрібно видалити, через кому.

circle-exclamation

Параметри системних сповіщень:

  • 'new_chat_member' – користувач приєднався до групи,

  • 'left_chat_member' – користувач покинув групу,

  • 'pinned_message' – повідомлення закріплено,

  • 'delete_chat_photo' – фото групи видалено,

  • 'new_chat_photo' – фото групи змінено,

  • 'new_chat_title' – назву групи змінено

Наприклад, вам потрібно видалити всі види системних повідомлень, окрім приєднання до групи; тоді потрібно додати всі види callbacks до змінної проєкту (константи), окрім "new_chat_member".

circle-info

Зверніть увагу!

Видалення системних сповіщень не вплине на callbacks. Буде видалено лише системне повідомлення з діалогу Telegram.

Форум у Telegram

Форум — це група, де можна створювати окремі теми для обговорення. У форумі можна використовувати стандартні функції: прикріплювати медіафайли, публікувати опитування та налаштовувати сповіщення. Також можна закріплювати повідомлення та додавати окремих ботів до кожного чату.

Основна мета форуму — структурувати спілкування у межах великої спільноти.

У стандартному груповому чаті з багатьма учасниками відстежувати розмови та знаходити потрібні повідомлення стає складно. Форум вирішує цю проблему, організовуючи обговорення в окремі тематичні гілки. Це автоматично розділяє спільноту за темами й інтересами, роблячи спілкування більш сфокусованим і керованим.

Лише власник групи може створити тему, якщо в групі більше ніж 100 учасників. Якщо група пов'язана з каналом, то створити тему не вдасться. Теми увімкнено в Налаштуваннях групи:

Як адміністратор, ви можете створити тему в налаштуваннях групи форуму:

Після підключення Тем, аватар зміниться з круглого на квадратний, що дає змогу відрізнити форум від інших чатів Telegram:

Як налаштувати зв'язку Telegram-клієнта з вебсайтом?

Докладніше про те, як пов'язати Telegram-клієнта і клієнта з вебсайту після успішної оплати тут.

Last updated