Подтвердить канал
Завершение аутентификации у провайдера после создания канала — по QR-коду, коду подтверждения или через OAuth
После создания канала способ подтверждения подключения определяется провайдером. Об изменениях статуса канала также приходят вебхуки — см. События каналов.
Аутентификация по QR-коду
Аутентификацию по QR-коду поддерживают:
whatsapptelegram_personalmax
После создания канала ответ API содержит поле qr с изображением QR-кода в кодировке Base64.
Тот же QR-код доставляется в событии вебхука update.
Когда срок действия QR-кода истекает, отправляется ещё одно событие вебхука update с новым QR-кодом.
Аутентификация по коду
Аутентификация по коду доступна для:
whatsapptelegram_personal
Если в запрос создания канала передан параметр phone_number, вместо аутентификации по QR-коду используется аутентификация по коду.
Ответ содержит поле code.
Тот же код доставляется через вебхук update.
Telegram Personal
Telegram отправляет код подтверждения непосредственно на устройство пользователя.
Полученный код необходимо передать при включении канала:
PUT/PATCH https://api.pact.im/api/p2/companies/{company_id}/auths/{id}/enable
Запрос:
{
"code": "12345"
}Аутентификация через OAuth
Аутентификацию через OAuth поддерживают:
facebookvkontakteinstagram_businesswhatsapp_businessavito
После создания канала ответ содержит поле oauth_provider_url.
Тот же URL доставляется через вебхук update.
Пользователю надо открыть URL и пройти подключение у провайдера.
Для всех провайдеров, кроме VKontakte, канал становится активной автоматически после получения обратного вызова OAuth.
VKontakte
Канал во VKontakte состоит из двух шагов.
Шаг 1
Откройте первоначальный oauth_provider_url и пройдите канал.
Шаг 2
Приходит вебхук update со списком всех доступных сообществ.
Каждое сообщество содержит собственный oauth_provider_url.
Откройте URL нужного сообщества, чтобы завершить подключение.
Пример:
{
"pages": [
{
"id": 30289,
"enabled": false,
"name": "test",
"external_id": "232630093",
"oauth_provider_url": "https://oauth.vk.ru/authorize?..."
}
]
}