Для разработчиков

Саморегистрация вебхука бота

PUT/bot/webhook

Метод позволяет боту самостоятельно изменить URL своего исходящего вебхука своим же токеном — без участия администратора и без знания собственного id. Меняется вебхук того бота, которому принадлежит токен. Чтобы отключить вебхук, передайте пустую строку в outgoing_url.

Адрес бота с разворачиванием ссылок (событие message_link_shared или режим trigger_on: unfurl) меняет только администратор или владелец пространства методом PUTРедактирование бота. Такому боту этот метод отвечает 400 с кодом forbidden на любой новый адрес, в том числе на пустую строку.

Тело запроса

application/json
webhook
object
*
Объект параметров вебхука
outgoing_url
string
*
URL исходящего вебхука. Пустая строка отключает вебхук.
Пример:https://example.com/tasks/new
Длина:
<= 255 символов

Ответ

200OK
The request has succeeded.
data
object
*
Параметры бота в ответах методов самого бота
id
integer, (int32)
*
Идентификатор бота (совпадает с user_id бота)
Пример:1738816
oauth_client
nullableobject
*
Параметры авторизации от имени сотрудника. Может прийти и у бота с выключенной авторизацией. У бота без токенов может прийти null.
client_id
string
*
Идентификатор клиента для ссылки авторизации
Пример:aB3dE5fG7hJ9kL1mN3pQ5rS7tU9vW1xY
client_secret_preview
string
*
Секрет клиента в маскированном виде. Полное значение приходит в client_secret один раз: при включении серверного клиента и при ротации секрета.
Пример:cH5kR9mN...x7Qp
confidential
boolean
*
Где хранится секрет: true — серверное приложение, false — приложение без секрета, обмен кода по PKCE
Пример:true
redirect_uris[]
array of strings
*
Адреса возврата после согласия
Пример:["https://example.com/oauth/callback"]
scopes[]
array of strings
*
Права, которые бот запрашивает у сотрудника на экране согласия
Пример:["messages:read","messages:create"]
webhook
object
*
Объект параметров вебхука
name
string
*
Имя бота
Пример:Бот задач
Длина:
<= 255 символов
nickname
string
*
Никнейм бота
Пример:tasks_bot
Длина:
<= 255 символов
outgoing_url
nullablestring
*
URL исходящего вебхука. null или пустая строка, если исходящий вебхук у бота не настроен.
Пример:https://example.com/tasks/new
events[]
array of strings
*
События, на которые подписан бот
Возможные значения
Пример:["message_new"]
trigger_on
string
*
Условие срабатывания исходящего вебхука
Возможные значения
Пример:commands
commands[]
array of strings
*
Команды бота (триггер-слова)
Пример:["/task"]
scopes[]
array of strings
*
Скоупы (права доступа) токена бота. Набор по умолчанию шире того, что можно назначить явно, поэтому здесь могут встречаться значения, недоступные для явной установки.
Пример:["messages:create"]
template
nullablestring
*
Шаблон форматирования входящего вебхука. null, если не задан.
Пример:Заказ от {{ client }} на сумму {{ amount }} ₽
template_engine
string
*
Шаблонизатор для обработки шаблона входящего вебхука
Возможные значения
Пример:liquid
challenge_key
nullablestring
*
Название поля проверки для верификации входящего вебхука. null, если не задано.
Пример:challenge
ignore_self_messages
boolean
*
Не присылать боту события о сообщениях, которые он отправил сам, и о реакциях на эти сообщения, кто бы их ни поставил или снял. Нажатия кнопок приходят всегда.
Пример:false
events_history_enabled
boolean
*
Сохранять историю событий бота для последующего получения через метод истории событий
Пример:false
single_chat
boolean
*
Ограничивает бота одной беседой или каналом: true — бота можно добавить только в один такой чат, false — в несколько. Личные чаты и треды в ограничение не входят.
Пример:false
can_edit[]
array of strings
*
Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.
Возможные значения
Пример:["admin"]
who_can_add
string
*
Кто может добавлять бота в чаты
Возможные значения
Пример:creator
Саморегистрация вебхука бота
pachca bots update-webhook \  --outgoing-url=https://example.com/tasks/new \  --json \  --token YOUR_ACCESS_TOKEN
Ответ 200
{  "data": {    "id": 1738816,    "oauth_client": {      "client_id": "aB3dE5fG7hJ9kL1mN3pQ5rS7tU9vW1xY",      "client_secret_preview": "dGhpc19p...ZWNy",      "confidential": true,      "redirect_uris": [        "https://example.com/oauth/callback"      ],      "scopes": [        "messages:read",        "messages:create"      ]    },    "webhook": {      "name": "Бот задач",      "nickname": "tasks_bot",      "outgoing_url": "https://example.com/tasks/new",      "events": [        "message_new"      ],      "trigger_on": "commands",      "commands": [        "/task"      ],      "scopes": [        "messages:create"      ],      "template": "Заказ от {{ client }} на сумму {{ amount }} ₽",      "template_engine": "liquid",      "challenge_key": "challenge",      "link_preview_enabled": true,      "ignore_self_messages": false,      "events_history_enabled": false,      "single_chat": false,      "can_edit": [        "admin"      ],      "who_can_add": "creator"    }  }}