Skip to content

API Reference

T0yB0y edited this page Apr 12, 2026 · 1 revision

Полный список методов Max::Bot::Api.

api = Max::Bot::Api.new(ENV.fetch('MAX_BOT_TOKEN'))

Сообщения

send_message

api.send_message(text, chat_id: 123)
api.send_message(text, user_id: 456)
api.send_message(text, chat_id: 123, format: 'markdown')
api.send_message(nil, chat_id: 123, attachment: attachment_hash)
api.send_message(nil, chat_id: 123, attachments: [att1, att2])
Параметр Тип Описание
text String Текст сообщения (может быть nil, если есть attachments или link)
chat_id Integer ID чата (группа/канал)
user_id Integer ID пользователя (личка)
format String Форматирование: 'markdown' или 'html'
attachment Hash / Array Одно или несколько вложений
attachments Array Массив вложений
notify Boolean Уведомление о сообщении
link String Ссылка
disable_link_preview Boolean Отключить превью ссылки

edit_message

api.edit_message(message_id, 'Новый текст')
api.edit_message(message_id, 'Текст', format: 'markdown')
api.edit_message(message_id, nil, attachments: [new_attachment])

delete_message

api.delete_message(message_id)

get_message

api.get_message(message_id)

Callback

answer_callback

Ответ на callback от inline-кнопки:

api.answer_callback(callback_query_id, text: 'Готово!')
api.answer_callback(callback_query_id, show_alert: true, text: 'Ошибка!')
api.answer_callback(callback_query_id, url: 'https://example.com')
Параметр Тип Описание
callback_query_id String ID callback-запроса
text String Текст уведомления (опционально)
show_alert Boolean Показать всплывающее окно
url String URL для открытия

Чаты

chats

Список всех групповых чатов:

api.chats
api.chats(count: 50)
api.chats(marker: 10)

chat

Информация о конкретном чате:

api.chat(chat_id)

Бот

me

Информация о боте (проверка токена):

bot = api.me
bot[:name]       # => "My Bot"
bot[:user_id]    # => 1
bot[:is_bot]     # => true

Подписки (вебхуки)

subscriptions

Текущие подписки:

api.subscriptions

set_webhook

Подписка на обновления через HTTPS:

api.set_webhook(
  url: 'https://example.com/webhook',
  update_types: %w[message_created bot_started],
  secret: 'your_secret'
)

delete_webhook

Отключение вебхука (возврат к long polling):

api.delete_webhook('https://example.com/webhook')

Загрузка медиа

create_upload

Получить слот для загрузки файла:

slot = api.create_upload(type: :image)
slot[:url]  # => URL для загрузки

upload_file

Загрузить файл и получить метаданные:

meta = api.upload_file(type: :image, path: '/path/to/photo.jpg')
meta[:token]  # => токен для прикрепления

send_media

Загрузить и отправить одним вызовом:

api.send_media(type: :image, path: '/path/to/photo.jpg', text: 'Фото', chat_id: 123)