Новый
🔥 Станьте первым, кто попробует WhatsApp Business Calling API (открытую бета-версию)!
arrow-icon
All Collections >
Каналы >
Пользовательский канал >
Пользовательский канал быстрого запуска

Пользовательский канал быстрого запуска

Avatar
JQ Lee
· 30 Jun 2025
2 мин чтения

Эта интеграция позволяет вашей команде общаться с клиентами по любому каналу обмена сообщениями с помощью индивидуальной реализации.

Подключение пользовательского канала

Шаг 1: Перейти к Настройки > Каналы

Шаг 2: Нажмите Добавить канал > Пользовательский канал > Подключиться

Шаг 3: Введите целевой URL-адрес Webhook, на который будут отправляться исходящие сообщения.

Шаг 4: Выберите тип идентификатора для канала > нажмите Далее

Типы идентификаторов используются для идентификации пользователя и связи с вашим пользовательским сервером интеграции.

Доступны два типа идентификаторов:

  1. Номер телефона: Используйте этот вариант, если поставщик услуг обмена сообщениями распознает контакты по номеру телефона.

    1. Пример формата: +60177872890

  2. Пользовательский идентификатор: используйте этот вариант, если поставщик услуг обмена сообщениями распознает контакты на основе пользовательского идентификатора.

    1. Максимальная длина — 50 символов.

    2. AZ,az,0-9,_,=,+,/и@разрешены.

Шаг 5: В следующем диалоговом окне будут указаныИдентификатор канала,Токен APIиURL-адрес веб-перехватчиканапример

  1. Идентификатор канала:gfd8g7fd89dgfd

  2. Токен API:aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd

  3. URL-адрес веб-перехватчика:https://app.respond.io/custom/channel/webhook/

    Использование идентификатора номера телефона позволяет вам начать разговор и отправить первое сообщение контакту.

Передача сообщений на response.io

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

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: Нажмите Сохранить изменения , чтобы обновить конфигурацию пользовательского канала.

Часто задаваемые вопросы и устранение неполадок

Могу ли я подключить чаты с других платформ с помощью пользовательского канала?

Да, можете. Вот три шага, которые нужно выполнить:

  1. В response.io введите URL-адрес веб-перехватчика назначения с другой платформы в поле URL-адрес веб-перехватчика для входящего сообщения .

  2. На другой платформе настройте URL-адрес веб-перехватчика , указывающий на response.io, что позволит Контактам отправлять вам сообщения.

  3. Вам'понадобится Пользовательский сервер интеграции для интерпретации API как от response.io, так и от другой платформы, что позволит обмениваться сообщениями между ними.

Обязательно подтвердите на другой платформе, что первые два шага осуществимы.

Часто задаваемые вопросы по пользовательским веб-перехватчикам каналов

Почему вебхук возвращает статус 200, даже если сообщение не доставлено на response.io?

При подключении пользовательского канала сообщения, отправленные на response.io через веб-перехватчики, всегда будут немедленно возвращать код статуса 200, независимо от того, было ли сообщение успешно передано на response.io. Это связано с природой веб-хуков, которые предназначены для немедленного возврата ответа без проверки успешности доставки сообщения.

Поделиться этой статьей
Telegram
Facebook
Linkedin
Twitter

Соответствующие статьи 👩‍💻

Обзор пользовательского канала
Получите обзор пользовательского канала и его возможностей.

Не удается найти то, что вы ищете? 🔎