Эта интеграция позволяет вашей команде общаться с клиентами по любому каналу обмена сообщениями с помощью индивидуальной реализации.
Шаг 1: Перейти к Настройки > Каналы
Шаг 2: Нажмите Добавить канал > Пользовательский канал > Подключиться
Шаг 3: Введите целевой URL-адрес Webhook, на который будут отправляться исходящие сообщения.
Шаг 4: Выберите тип идентификатора для канала > нажмите Далее
Типы идентификаторов используются для идентификации пользователя и связи с вашим пользовательским сервером интеграции.
Доступны два типа идентификаторов:
Номер телефона: Используйте этот вариант, если поставщик услуг обмена сообщениями распознает контакты по номеру телефона.
Пример формата: +60177872890
Пользовательский идентификатор: используйте этот вариант, если поставщик услуг обмена сообщениями распознает контакты на основе пользовательского идентификатора.
Максимальная длина — 50 символов.
AZ
,az
,0-9
,_
,=
,+
,/
и@
разрешены.
Шаг 5: В следующем диалоговом окне будут указаныИдентификатор канала,Токен APIиURL-адрес веб-перехватчиканапример
Идентификатор канала:gfd8g7fd89dgfd
Токен API:aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd
URL-адрес веб-перехватчика:https://app.respond.io/custom/channel/webhook/
Использование идентификатора номера телефона позволяет вам начать разговор и отправить первое сообщение контакту.
URL-адрес веб-перехватчикаиспользуется для публикациисообщений,сообщений эхаисообщений квитанцийна платформе response.io.
Предоставленный код активирует веб-хук на response.io, при необходимости создавая контакт и сохраняя сообщение под этим контактом.
Образец для сообщений
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'авторизация: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'управление кэшем: без кэша' \\
-H 'тип содержимого: приложение/json' \\
-d '{
"идентификатор канала": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"события": \[
{
"тип": "сообщение",
"mId": "xcvzzxcxczxczxc",
"временная метка": 2132131321000,
"сообщение": {
"тип": "текст",
"текст": "Привет, мир"
}
}
\],
"контакт": {
"имя": "Джон",
"фамилия": "Доу",
"профиль фото": "<https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/07/08/14/pic.jpg>",
"Код страны": "MY",
"email": "john@respond.io",
"телефон": "+60177872890",
"язык": "ru"
}
}'
Образец для сообщений Echo
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'авторизация: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'управление кэшем: без кэша' \\
-H 'тип содержимого: приложение/json' \\
-d '{
"идентификатор канала": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"события": \[
{
"тип": "сообщение\_echo",
"mId": "xcvzzxcxczxczxc",
"временная метка": 2132131321000,
"сообщение": {
"тип": "текст",
"текст": "Привет, мир"
}
}
\],
"контакт": {
"имя": "Джон",
"фамилия": "Доу",
"фотография профиля": "<https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/07/08/14/pic.jpg>",
"Код страны": "MY",
"email": "john@respond.io",
"телефон": "+60177872890",
"язык": "en"
}
}'
Образец квитанций об отправке сообщений
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'авторизация: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'управление кэшем: без кэша' \\
-H 'тип содержимого: приложение/json' \\
-d '{
"идентификатор канала": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"события": \[
{
"тип": "сообщение\_статус",
"mId": "xcvzzxcxczxczxc",
"временная метка": 2132131321000,
"статус": {
"значение": "отправлено|доставлено|прочитано|не удалось",
"сообщение": "Ошибка: отправка не удалась из-за недопустимого токена"
}
\]
}'
Поле | Описание | Проверка |
---|---|---|
идентификатор канала | Уникальный идентификатор канала | Необходимый. Уникальное поле. Генерируется response.io. |
contactId | Уникальный идентификатор контакта | Необходимый. Уникальный идентификатор контакта response.io. Макс. 50 символов. |
события.тип | Тип события | Необходимый. Доступные типы: message, message_echo и message_status. |
события.mld | Идентификатор сообщения | Необходимый. Уникальный идентификатор сообщения. Макс. 50 символов. |
события.метка времени | UNIX Epoch Time (миллисекунды) | Необходимый. Время события, вызвавшего обратный вызов. |
события.сообщение.тип | Тип сообщения | Необходимый. Доступные типы сообщений: текст, вложение, местоположение и quick_reply. Примеры других типов сообщений см. в разделе «Тип сообщения». |
события.сообщение.текст | Текст сообщения | Необходимый. Максимальная длина 7000 символов. |
события.статус.значение | Текст | Обязательно, если event.type — message_status. Доступные значения статуса: отправлено, доставлено, прочитано и не выполнено. |
события.статус.сообщение | Текст | Требуется, если events.status.value не пройден. |
контакт.имя | Имя | Необязательный. Макс. 50 символов. |
контакт.фамилия | Фамилия | Необязательный. Макс. 50 символов. |
контакт.profilePic | URL-адрес фотографии профиля | Необязательный. Размер аватара не должен превышать 100 кб. Рекомендуется 720x720. |
контакт.локаль | Код локали | Необязательный. Список значений можно найти здесь. |
contact.countryCode | Код страны | Необязательный. Двухбуквенный код страны — код ISO ALPHA-2. |
контакт.часовой пояс | Часовой пояс | Необязательный. (мин: -24) (макс: 24). |
контакт.электронная почта | Адрес электронной почты | Необязательный. Макс. 50 символов. |
контакт.телефон | Номер телефона | Необязательный. Максимум 18 символов. |
контакт.язык | Язык | Необязательный. ИСО 639-1. |
Ответ - Успешно (статус HTTP → 200)
"ОК"
response.io вызовет конечную точку<API Base URL>/message
Убедитесь, что вы применили кодисходящего сообщенияна маршруте
/message
вашего веб-сервера.
Вот пример cURL для response.io, вызывающего конечную точку:
curl -X POST \\
<API Base URL>/сообщение \\
-H 'авторизация: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'управление кэшем: без кэша' \\
-H 'тип содержимого: приложение/json' \\
-d '{
"идентификатор канала": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"сообщение": {
"тип": "текст",
"текст": "Привет, мир"
}
}'
Ответ - Успешно (статус HTTP → 200)
{
"средний": "1640141607842"
}
Перед отправкой сообщения поставщику услуг обмена сообщениями необходимо выполнить аутентификацию на конечном устройстве.
Вот'пример использования промежуточного программного обеспечения Express для этой цели:
const {validationResult} = require('express-validator');
const validateToken = (req, res, next) => {
const apiToken = <<API Token>>
const bearerToken = req.headers.authorization;
if (!bearerToken)
return res.send(401)
const token = bearerToken.substring(7, bearerToken.length);
если (apiToken !== token) {
вернуть res.send(401)
}
next();
};
module.exports = {
validateToken
};
Мы'включили пример пользовательского канала, который вы можете протестировать на своем сервере. Ознакомьтесь с нашим проектом GitHub здесь.
Образец текста
{
"тип": "текст",
"текст": "Добро пожаловать в response.io",
}
Поле | Описание | Проверка |
---|---|---|
тип | Тип сообщения | Необходимый. текст |
текст | Текст сообщения | Необходимый. Максимальная длина 7000 символов. |
Образец для медиа-файла
{
"тип": "вложение",
"вложение": {
"тип": "изображение|видео|аудио|файл",
"URL": "https://abc/japan.png",
"mimeType": "image/png",
"Имя файла":"логотип компании.png",
"описание": "последний логотип компании"
}
}
Поле | Описание | Проверка |
---|---|---|
тип | Тип сообщения | Необходимый. вложение. |
тип.прикрепления | Тип вложения | Необходимый. Доступные типы вложений: изображение, видео, аудио и файл. |
вложение.url | URL | Необходимый. Максимум 2000 символов. Убедитесь, что это общедоступная ссылка, чтобы пользователи или контакты могли видеть ее содержимое. |
вложение.mimeType | Тип MIME вложения | Необязательный |
вложение.имя_файла | Имя файла | Необязательный. Имя файла должно включать расширение. Максимум 256 символов (включая расширение файла). Отправка файла без расширения или с неправильным расширением может привести к тому, что контакт или пользователь не сможет открыть файл. |
вложение.описание | Описание файла | Необязательный. Максимум 256 символов. Применимо только для attach.type = image. |
Убедитесь, что URL-адрес вложения не'принудительно загружен браузером. Заголовок HTTP-ответа's Content-Disposition
должен иметь значение по умолчанию, то есть inline
.
Образец для местоположения
{
"тип": "местоположение",
"широта": 0,123456,
"долгота": -0,1234,
"адрес": "Sky Suites, Джалан П. Рамли, Куала-Лумпур, 50250 Куала-Лумпур, Вилайя Персекутуан Куала-Лумпур"
}
Поле | Описание | Проверка |
---|---|---|
тип | Тип сообщения | Необходимый. расположение. |
широта | Координаты | Необходимый. Широта (±90°) в допустимых диапазонах. |
долгота | Координаты | Необходимый. Долгота (±180°) в допустимых диапазонах. |
адрес | Адрес местонахождения | Необязательный. Максимум 256 символов. |
Образец для быстрого ответа
{
"тип": "быстрый\_ответ",
"заголовок": "Выберите предпочитаемый язык",
"ответы": \[
"Малайский",
"Английский"
\]
}
Поле | Описание | Проверка |
---|---|---|
тип | Тип сообщения | Необходимый. быстрый_ответ. |
заголовок | Заголовок быстрого ответа | Необходимый. Максимум 256 символов. |
ответы | Текст ответа | Необходимый. Максимум 10 ответов, каждый длиной не более 256 символов. |
Ошибка (статус HTTP → 4xx)
Шаг 1: Нажмите Настройки > Каналы
Шаг 2: Найдите пользовательский канал > нажмите Управление
Шаг 3: На странице Пользовательской конфигурации канала вы увидите следующие конфигурации:
Значок канала - Загрузите изображение, которое будет служить значком для вашего пользовательского канала.
Название канала - Название канала можно изменить, оно используется внутри для идентификации канала.
URL-адрес веб-перехватчика для исходящих сообщений — URL-адрес веб-перехватчика для исходящих сообщений на этот канал.
URL-адрес веб-перехватчика для входящих сообщений — URL-адрес веб-перехватчика для входящих сообщений на этот канал.
Тип идентификатора — Они используются для идентификации пользователя и используются для связи с вашим пользовательским сервером интеграции.
Идентификатор канала — Уникальный идентификатор канала для идентификации вашего пользовательского канала.
API-токен — уникальный идентификатор, используемый для аутентификации пользователя для доступа к API.
Шаг 4: Нажмите Сохранить изменения , чтобы обновить конфигурацию пользовательского канала.
Да, можете. Вот три шага, которые нужно выполнить:
В response.io введите URL-адрес веб-перехватчика назначения с другой платформы в поле URL-адрес веб-перехватчика для входящего сообщения .
На другой платформе настройте URL-адрес веб-перехватчика , указывающий на response.io, что позволит Контактам отправлять вам сообщения.
Вам'понадобится Пользовательский сервер интеграции для интерпретации API как от response.io, так и от другой платформы, что позволит обмениваться сообщениями между ними.
Обязательно подтвердите на другой платформе, что первые два шага осуществимы.
При подключении пользовательского канала сообщения, отправленные на response.io через веб-перехватчики, всегда будут немедленно возвращать код статуса 200, независимо от того, было ли сообщение успешно передано на response.io. Это связано с природой веб-хуков, которые предназначены для немедленного возврата ответа без проверки успешности доставки сообщения.
Соответствующие статьи 👩💻