Команда Пачки
Демонстрация Пачки
Живой разговор с нашим экспертом,
не больше получаса
Узнаете, как быстро перейти в Пачку из Slack, Telegram или другого мессенджера
Сориентируетесь по ценам и скидкам
Посмотрите, как работает Пачка: основные функции и интеграции
Передовые компании выбирают Пачку
Логотип МФТИЛоготип SkillfactoryЛоготип Lamoda
Демонстрация Пачки
Мы свяжемся с вами в течение дня и договоримся о времени.
Спасибо! Ваша заявка была получена!
Запись в данный момент недоступна. Попробуйте ещё раз позднее.

Кнопки в чат-ботах

Как отправить сообщение с кнопками от имени бота

Для отправки сообщения с кнопками вам потребуется воспользоваться методом API Новое сообщение и полем message.buttons.

Кнопки под сообщением от бота отображаются в виде строк, которые полностью занимают вложенные в них кнопки. Поэтому, buttons - массив строк. Каждая строка - массив объектов кнопок.

У кнопки есть text (отображаемый текст на кнопке) и тип кнопки url или data.

  • URL-кнопки — предназначены для перенаправления пользователя по ссылке.
  • Data-кнопки — позволяют получать от пользователя данные и реагировать (например, изменять сообщение или отправлять новое).

Ограничения:

  • Максимальное количество кнопок в строке - 8
  • Максимальное число кнопок у сообщения - 100
  • Максимальная длина text на кнопке - 255 символов
  • Максимальная длина data у кнопки - 255 символов

Пример сообщения от бота с кнопками:

Пример URL-кнопки:

{
	"text": "Все мои проекты",
	"url": "<https://projects.com/list>"
}

Пример Data-кнопки:

{
	"text": "👍 Согласиться",
	"data": "vote_yes"
}

Пример запроса на отправку сообщения с кнопками методом POST https://api.pachca.com/api/shared/v1/messages

{
  "message": {
    "entity_type": "discussion",
    "entity_id": 82753212,
    "content": "Новый заказ [Создание одностраничного сайта](<https://projects.com/inbox/534>) на сумму 8000 руб.",
    "buttons":[
      /* Строка из двух кнопок */
      [{
        "text": "👍 Согласиться",
        "data": "vote_yes"
      },
      {
        "text": "❌ Отказаться",
        "data": "vote_no"
      }],
      /* Одна кнопка */
      [{
        "text": "🕒 Перенести на неделю",
        "data": "pause_week"
      }],
      /* Одна url-кнопка. */
      [{
        "text": "Все мои проекты",
        "url": "<https://projects.com/list>"
      }]
    ]
  }
}
Метод Редактирование сообщения также поддерживает поле message.buttons

URL-кнопки

При нажатии на URL-кнопку пользователю будет отображено модальное окно с подтверждением перехода по ссылке:

Data-кнопки

Для того чтобы получать события о нажатых пользователем кнопках, вам необходимо указать Webhook URL (куда вы будете получать события) в настройках исходящего вебхука бота и включить уведомления о событии "Нажатие кнопок".

Пример настроек "Исходящий вебхук" у бота:

Когда пользователь нажмет кнопку, на указанный Webhook URL будет отправлен JSON объект с информацией о сообщении, нажатой кнопке и пользователе, который эту кнопку нажал.

Пример исходящего вебхука о нажатии кнопки:

{
  "type": "button", //тип объекта
  "message_id": 21344124, //идентификатор сообщения, к которому относится кнопка
  "data": "vote_yes", //данные нажатой кнопки
  "user_id": 2412 //идентификатор пользователя, который нажал кнопку
}

После получения события вы можете дать обратную связь пользователю, например:

  • Через метод API Редактирование сообщения убрать уже не нужные кнопки и добавить новые, а в тексте сообщения показать, что действие совершено.
  • Через метод API Информация о сообщении получить идентификатор чата, в котором лежит сообщение от бота, и написать в этот чат сообщение с новыми кнопками или с результатом действия бота.

Обновлено 
24.10.2024