Перейти к основному содержимому

Подключение Viber для проекта на JAICF

Чтобы подключить Viber для проекта на JAICF:

  1. Подготовьте проект.
  2. Подключите канал.
  3. Протестируйте бота.

Подготовка проекта

Перед подключением канала предварительно подготовьте проект JAICF:

  1. Укажите в файле build.gradle.kts в зависимостях настройки:
dependencies {
// ...
implementation("com.just-ai.jaicf:jaicp:$jaicfVersion")
implementation("com.just-ai.jaicf:viber:$jaicfVersion")
}
подсказка
  1. Сконфигурируйте в зависимости от способа подключения к платформе:
  • long polling — бот будет сам подключаться к серверу Just AI при взаимодействии с платформой. Простое решение, подходит для локальной разработки и отладки.

    Для этого способа укажите в файле JaicpPoller.kt канал ViberChannel:

package com.just-ai.jaicf.template.connections

fun main() {
JaicpPollingConnector(
templateBot,
accessToken,
channels = listOf(
ChatApiChannel,
ChatWidgetChannel,
TelephonyChannel,
ViberChannel
)
).runBlocking()
}
  • webhook — по указанной ссылке бот будет принимать сообщения платформы. Необходимо конфигурировать для подключения в JAICP Cloud.

    Для этого способа укажите в файле JaicpServer.kt канал ViberChannel:

package com.just-ai.jaicf.template.connections

fun main() {
JaicpServer(
botApi = templateBot,
accessToken = accessToken,
channels = listOf(
ChatApiChannel,
ChatWidgetChannel,
TelephonyChannel,
ViberChannel
)
).start(wait = true)
}

Подключение канала

Для подключения канала используйте инструкцию.

Тестирование бота

Перейдите в окно диалога с ботом в Viber и отправьте ему приветственную/активационную фразу, предусмотренную вашим сценарием. После этого должен начаться ваш диалог с ботом.

Нативные возможности канала

Использование данных из запроса

В канале Viber можно получить из запроса дополнительные данные. Для этого приведите тип запроса в блоке action к ViberBotRequest:

action {
val viberRequest = request.viber
}

Также ViberBotRequest можно привести к конкретному типу: например, к ViberFileMessageRequest, чтобы получить имя файла, отправленного в канал:

action {
val fileRequest = request.viber?.file
val filename = fileRequest?.message?.filename
}

Нативные реакции

JAICF предоставляет универсальные реакции, доступные во всех каналах, а также реакции, уникальные для Viber. Чтобы использовать специфические реакции Viber, используйте reactions.viber, например:

action {
reactions.say("Привет!")
reactions.viber?.location(60.0, 30.0)
}

Для доступа к API-клиенту Viber используйте reactions.viber.viberApi:

action {
reactions.viber?.let { it.viberApi.accountInfo(it.authToken) }
}

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

При создании канала вы можете задать список событий, которые будут игнорироваться ботом при их возникновении в канале.

Для этого передайте список нужных событий в ViberChannel.Factory при конфигурации JaicpPollingConnector или JaicpServer:

package com.just-ai.jaicf.template.connections

fun main() {
val config = ViberChannelConfig(ignoreSeenEvents = false, ignoreDeliveredEvents = false)

JaicpPollingConnector(
templateBot,
accessToken,
channels = listOf(
ViberChannel.Factory(config)
)
).runBlocking()
}