Всё это — в Настройки → API и вебхуки (только для администраторов).
REST API
- Нажмите «Новый ключ», дайте название (например «CRM»). Ключ показывается один раз — сохраните его.
- Передавайте ключ в заголовке
Authorization: Bearer co_….
Через API можно получить диалоги с сообщениями, карточки клиентов и отчёт, а также написать сообщение в открытый диалог от имени бота (оно уйдёт и в мессенджер, если диалог оттуда). Лимит — 120 запросов в минуту на ключ. Полное описание — документация OpenAPI.
Ненужный или скомпрометированный ключ — «Отозвать».
Вебхуки
ChatOper отправит POST с JSON на ваш адрес https://…, когда происходит событие:
- Новый диалог;
- Сообщение — посетителя, оператора или бота;
- Диалог закрыт;
- Оценка диалога.
Каждый запрос подписан: заголовок с подписью HMAC-SHA256 секретом вебхука — проверяйте его, чтобы отличить наши запросы от чужих. Если ваш сервер не ответил, ChatOper повторит отправку несколько раз с растущей паузой. История доставки и кнопка «Отправить тестовое событие» — у каждого вебхука.
JS API виджета
Управление чатом из кода сайта — открыть по своей кнопке, передать данные вошедшего покупателя, узнать о новых сообщениях:
window.chatoperReady = function (chat) {
// Свои кнопки «Помощь»
document.querySelector('#help').onclick = () => chat.open()
// Покупатель вошёл в личный кабинет — операторы увидят его контакты
chat.setContactInfo({ name: 'Анна', email: 'anna@example.ru', phone: '+7 900 000-00-00' })
// Новое сообщение в чате
chat.on('message', (m) => console.log(m))
}
Методы: open(), close(), toggle(), isOpen(), setContactInfo({name, email, phone}),
on(событие, обработчик) и off(...). События: open, close, message, chatClosed. Когда виджет
загрузился, вызывается window.chatoperReady(api) и событие chatoper:ready на window.