respond-io
New
🚀 TikTok Business Messaging живый! Беспрепятственно превращать разговоры в конверсии. Узнайте больше.
arrow-icon

Главная >

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

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

Avatar
JQ Lee
· 05 Nov 2024
2 мин чтения

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

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

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

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

Шаг 3: Введите URL назначения Webhook, где будут отправляться исходящие сообщения.

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

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

Существует два типа идентификаторов:

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

    1. Формат примера: +60177872890

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

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

    2. A-Z,a-z,0-9,_,=,+,/и@разрешены.

Шаг 5: Следующий диалог предоставитканал ID,API TokenиURL Webhookнапр.

  1. ID канала:gfd8g7fd89dgfd

  2. API Token:aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd

  3. Webhook URL:https://app.respond.io/custom/channel/webhook/

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

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

URL-адрес веб-перехватчикаиспользуется для публикациисообщений,сообщений эхаисообщений квитанцийна платформе response.io.

Предоставленный код вызовет webhook на respond.io, создаст контакт, если это необходимо, и сохранит сообщение под этим Контактом.

Пример для сообщений

curl -X POST \\  
  https://app.respond. o/custom/channel/webhook/ \\  
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
  "channelId": "gfd8g7fd89dgfd",  
  "contactId": "+60177872890",  
  "events": \[  
    {  
      "type": "message",  
      "mId": "xcvzzxcxczxc",  
      "timestamp": 21321321000,  
      "message": {  
        "type": "text",  
        "Текст": "Приветствуем мир"  
      }  
    }  
  \],  
  "contact": {  
    "firstName": "John",  
    "lastName": "Doe",  
    "profilePic": "",  
    "Код страны": "MY",  
    "email": "john@respond. o",  
    "телефон": "+60177872890",  
    "язык": "ru"  
  }  
}'

Пример для сообщений Echoes

curl -X POST \\  
  https://app.respond. o/custom/channel/webhook/ \\  
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
  "channelId": "gfd8g7fd89dgfd",  
  "contactId": "+60177872890",  
  "events": \[  
    {  
      "type": "message\_echo",  
      "mId": "xcvzzxcxczxc",  
      "timestamp": 21321321000,  
      "message": {  
        "type": "text",  
        "Текст": "Приветствуем мир"  
      }  
    }  
  \],  
  "contact": {  
    "firstName": "John",  
    "lastName": "Doe",  
    "profilePic": "",  
    "Код страны": "MY",  
    "email": "john@respond. o",  
    "телефон": "+60177872890",  
    "язык": "ru"  
  }  
}'

Пример для отправки квитанций

curl -X POST \\  
  https://app.respond. o/custom/channel/webhook/ \\  
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
  "channelId": "gfd8g7fd89dgfd",  
  "contactId": "+60177872890",  
  "events": \[  
    {  
      "type": "message\_status",  
      "mId": "xcvzzxcxczxc",  
      "timestamp": 21321321000,  
      "status": {  
        "value": "sent|delivered|read|failed",  
        "message": "Ошибка: отправка не удалась из-за неверного токена"  
      }  
  \]  
}'

Поле

Описание

Проверка

ID канала

Уникальный ID канала

Обязательно. Уникальное поле. Создается через respond.io.

contactId

Уникальный ID контакта

Обязательно. Уникальный respond.io контактный id. Макс. 50 символов.

events.type

Тип события

Обязательно. Доступный тип: сообщение, message_echo, message_status.

events.mld

ID сообщения

Обязательно. Уникальный идентификатор сообщения. Макс. 50 символов.

events.timestamp

Время Эпохи UNIX (миллисекунд)

Обязательно. Время события, вызвавшего ответ.

events.message.type

Тип сообщения

Обязательно. Доступные типы сообщений: текст, вложение, местоположение и быстрый ответ. См. раздел "Тип сообщения" для других образцов типов сообщений.

events.message.text

Текст сообщения

Обязательно. Максимальная длина 7,000 символов.

events.status.value

Текст

Требуется если event.type является message_status. Доступные значения статуса: отправлено, доставлено, прочитано и не удалось.

events.status.message

Текст

Требуется если events.status.value не удался.

contact.firstName

Имя

Необязательно. Макс. 50 символов.

contact.lastName

Фамилия

Необязательно. Макс. 50 символов.

contact.profilePic

URL Pic профиля

Необязательно. Размер аватара не должен превышать 100 кб. Рекомендуется 720 x 720.

Локаль contact.locale

Код языка

Необязательно. Список значений можно найти здесь.

contact.countrycode

Код страны

Необязательно. Код страны - ISO ALPHA-2.

часовой пояс contact.time

Часовой пояс

Необязательно. (мин: -24) (макс: 24).

contact.email

Email Address

Необязательно. Макс. 50 символов.

contact.phone

Номер телефона

Необязательно. Максимум 18 символов.

Язык контакта

Язык

Необязательно. ISO 639-1.

Ответ - Успех (HTTP статус → 200)

"OK"

Обработка исходящих сообщений от respond.io

response.io вызовет конечную точку<API Base URL>/message

Убедитесь, что вы применили кодИсходящего сообщенияна маршруте/messageвашего веб-сервера.

Вот пример cURL respond.io вызова конечной точки:

curl -X POST \\  
  /message \\  
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
	"channelId": "gfd8g7fd89dgfd",  
	"contactId": "+60177872890",  
	"message": {  
		"type": "text",  
		"Текст": "Привет, Мир"  
	}  
}'

Ответ - Успех (HTTP статус → 200)

{  
	"mId": "1640141607842"  
}

Аутентификация должна происходить в конечной точке перед отправкой сообщения поставщику услуг обмена сообщениями.

Вот's пример использования экспресс-middleware для этой цели:

const {validationResult} = require('express-validator');

const validateToken = (req, res, next) => {
    const apiToken = <>
    const bearerToken = req. eaders.authorization;

    если (!bearerToken)
        возвращает с. end(401)

    const token = bearerToken.substring(7, bearerToken.

    if (apiToken !== token) {
        return res. end(401)
    }
    следующей();
};

module.exports = {
    validateToken
};

Мы'включили пример пользовательского канала, который вы можете тестировать на вашем сервере. Посмотрите наш проект GitHub здесь.

Тип сообщений

Образец текста

{  
  "type": "text",  
  "text": "Добро пожаловать в respond.io",  
}

Поле

Описание

Проверка

тип

Тип сообщения

Обязательно. текст

текст

Текст сообщения

Обязательно. Максимальная длина 7,000 символов.

Пример для медиа файла

{  
  "type": "attachment",  
  "attachment": {  
    "type": "image|video|audio|file",  
    "url": "https://abc/japan. ng",  
    "mimeType": "image/png",  
    "fileName":"логотип компании. ng",  
    "Описание": "последний логотип компании"  
  }  
}

Поле

Описание

Проверка

тип

Тип сообщения

Обязательно. прикреплено.

тип приложения

Тип вложения

Обязательно. Доступные типы вложений: изображение, видео, аудио и файл.

attachment.url

URL

Обязательно. Макс. 2000 символов. Убедитесь, что это публичная ссылка, чтобы пользователи или контакты могли видеть содержимое.

крепление.mimeType

Mime тип приложения

Опционально

приложить имя файла

Имя файла

Необязательно. Имя файла должно включать расширение. Максимум 256 символов (включая расширение файла). Отправка файла без расширения или неправильного расширения может привести к тому, что контакт или пользователь не сможет открыть файл.

добавление.описание

Описание файла

Необязательно. Максимум 256 символов. Применяется только для прикрепленного типа = изображения.

Убедитесь, что URL-адрес вложения является't принудительно скачан браузером. Заголовок HTTP ответа's Content-Disposition должен иметь значение по умолчанию, то есть inline.

Пример для местоположения

{  
  "type": "location",  
  "latitude": 0.123456,  
  "longitude": -0.1234,  
  "address": "Sky Suites, Jalan P. Ramlee, Kuala Lumpur, 50250 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur"  
}

Поле

Описание

Проверка

тип

Тип сообщения

Обязательно. местоположение.

широта

Координаты

Обязательно. Широта (±90°) в пределах допустимых диапазонов.

longtitude

Координаты

Обязательно. Долгота (±180°) в пределах допустимых диапазонов.

адрес

Адрес местоположения

Необязательно. Максимум 256 символов.

Пример для быстрого ответа

{  
  "type": "quick\_reply",  
  "title": "Выберите предпочитаемый язык",    
  "Ответы": \[  
    "Малай",  
    "English"  
  \]  
}

Поле

Описание

Проверка

тип

Тип сообщения

Обязательно. быстрое _reply.

название

Заголовок быстрого ответа

Обязательно. Максимум 256 символов.

ответов

Текст ответа

Обязательно. Максимум 10 ответов максимум 256 символов для каждого ответа.

Коды ошибок

Error (HTTP Status → 4xx)

Конфигурация канала

Шаг 1: Нажмите Параметры > Каналы

Шаг 2: Найдите пользовательский канал > нажмите Управление

Шаг 3: на странице Пользовательской конфигурации канала вы увидите следующие конфигурации:

  • Значок канала - Загрузите изображение, которое служит иконкой для пользовательского канала.

  • Название канала - Название канала можно изменить, оно используется внутри для идентификации канала.

  • Webhook URL для исходящих сообщений — Webhook URL для исходящих сообщений в этот канал.

  • Webhook URL для входящего сообщения — Webhook URL для входящих сообщений на этот канал.

  • ID Type — Они используются для идентификации пользователя и используются для связи с вашим пользовательским сервером интеграции.

  • Channel ID — Unique Channel ID для идентификации пользовательского канала.

  • API Token — уникальный идентификатор, используемый для аутентификации пользователя для доступа к API.

Шаг 4: Нажмите Сохранить изменения для обновления конфигурации пользовательского канала.

FAQ и устранение неполадок

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

Да, вы можете. Ниже перечислены три шага:

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

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

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

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

FAQ для пользовательских вебхуков каналов

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

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

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

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

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

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