Встраивание PACT Embed с помощью iframe
Содержание:
- Общий обзор
- Формирование ссылки iframe
- Дополнительные параметры
- Встраивание iframe
Общий обзор
Функция PACT Embed позволяет встраивать нашу страницу внутрь своей CRM или другого веб-решения. Это реализуется через iframe, ссылка на который формируется с учётом ряда обязательных и дополнительных параметров.
Формирование ссылки iframe
1. Основной маршрут:
Базовый URL: https://msg.pact.im/pact_embed
2. Обязательные параметры:
- company_uuid (пример: 90cbceee-2d3a-4dfd-b021-489ead21b830): идентификатор компании. Его можно получить запросом к PACT API (создание или получение списка компаний). Пример запроса для списка компаний:
GET https://api.pact.im/p1/companies
Из ответа необходимо использовать external_uuid: - signature: Сигнатура для аутентификации, генерируется с помощью SHA512.
- Ruby:
require 'openssl' private_api_token = 'your_private_api_token' company_uuid = 'YOUR_COMPANY_UUID' hash = OpenSSL::HMAC.hexdigest( 'SHA512', private_api_token, company_uuid) puts hash
- JavaScript:
const crypto = require('crypto'); const privateApiToken = 'your_private_api_token'; const companyUuid = 'YOUR_COMPANY_UUID'; const hmac = crypto.createHmac('sha512', privateApiToken); hmac.update(companyUuid); const hash = hmac.digest('hex'); console.log(hash);
- Python:
import hmac import hashlib private_api_token = 'your_private_api_token' company_uuid = 'YOUR_COMPANY_UUID' hash = hmac.new( private_api_token.encode(), company_uuid.encode(), hashlib.sha512 ).hexdigest() print(hash)
- PHP:
<?php $privateApiToken = 'your_private_api_token'; $companyUuid = 'YOUR_COMPANY_UUID'; $hash = hash_hmac('sha512', $companyUuid, $privateApiToken); echo $hash; ?>
- Ruby:
- Сигнатура будет зашифрованным ключом (частный API токен) и UUID компании. Пример готовой ссылки с обязательными параметрами:
https://msg.pact.im/pact_embed?company_uuid=1234a567-2d3a-4dfd-b021-489ead21b830&signature=d41d8cd98f00b204e9800998ecf8427e
Дополнительные параметры
- scope: Указывает область взаимодействия. Так, scope=messages будет включать только отображение конкретной переписки, а scope=conversations будет открывать список переписок в переданной компании.
Если не передан параметр scope, будет использоваться scope=conversations.
Если не передан параметр scope, но передан phone, то будет попытка использовать scope=messages. - conversation_id: Позволяет открыть конкретный диалог по его ID при использовании scope=messages. Пример: conversation_id=12345. Обязателен при scope=messages и если не передан phone и provider.
- phone: Номер телефона для автоматического поиска пользователя. Пример: phone=+1234567890. Обязателен при scope=messages.
- provider: Указывает провайдера связи, если применимо. Пример: provider=whatsapp, provider=whatsapp_business, и т. д.
Полный пример ссылки с дополнительными параметрами:
Для загрузки списка чатов:
https://msg.pact.im/pact_embed?company_uuid=1234a567-2d3a-4dfd-b021-489ead21b830&signature=d41d8cd98f00b204e9800998ecf8427e&scope=conversations
Для загрузки диалога по его ID:
https://msg.pact.im/pact_embed?company_uuid=1234a567-2d3a-4dfd-b021-489ead21b830&signature=d41d8cd98f00b204e9800998ecf8427e&scope=messages&conversation_id=12345
Для загрузки диалога по телефону и провайдеру:
https://msg.pact.im/pact_embed?company_uuid=1234a567-2d3a-4dfd-b021-489ead21b830&signature=d41d8cd98f00b204e9800998ecf8427e&scope=messages&phone=+1234567890&provider=whatsapp
Встраивание iframe
Для интеграции iframe в вашу систему используйте следующий HTML-код:
<iframe src="https://msg.pact.im/pact_embed?company_uuid=1234a567-2d3a-4dfd-b021-489ead21b830&signature=d41d8cd98f00b204e9800998ecf8427e&scope=conversations" width="100%" height="600px" frameborder="0" allowfullscreen> </iframe>
Проверка работоспособности
- Убедитесь, что company_uuid соответствует вашей компании.
- Проверьте корректность генерации signature.
- Убедитесь, что указаны все необходимые параметры и дополнительные параметры настроены по вашему желанию.
- Откройте страницу с iframe в браузере и проверьте отображение.
Решение распространённых проблем
- Пустой или некорректный iframe: Проверьте параметры в ссылке, особенно company_uuid и signature.
- Ошибка аутентификации: Убедитесь, что вы используете правильный private_api_token для генерации signature.
- Неверные дополнительные параметры: Убедитесь, что значения параметров, таких как scope, conversation_id, phone и provider, корректны и применимы.
Поддержка
Если у вас возникли вопросы или проблемы, свяжитесь с технической поддержкой по Telegram, WhatsApp или из личного кабинета.