/ viber-bot-java

Эта библиотека устарела. Никаких новых разработок не будет. Мы рекомендуем вам использовать NodeJS, Python или REST API.

Используйте эту библиотеку для разработки бота для платформы Viber. Библиотека также доступна на GitHub . как maven central.

Лицензия

Эта библиотека выпущена в соответствии с условиями лицензии Apache 2.0. Дополнительную информацию см. В разделе «Лицензия».

Предварительные требования к библиотеке

  1. Java> = 8
  2. Активная учетная запись Viber на платформе, которая поддерживает публичные учетные записи/ботов (iOS/Android). Эта учетная запись будет автоматически назначена администратором учетной записи в процессе создания учетной записи.
  3. Активная общедоступная учетная запись/бот.
  4. Токен аутентификации учетной записи – уникальный идентификатор учетной записи, используемый для проверки ваш аккаунт во всех запросах API. Как только ваша учетная запись будет создана, ваш токен аутентификации появится на экране «Изменить информацию» учетной записи (только для администраторов). Каждый запрос, отправленный в Viber учетной записью, должен содержать токен.
  5. Webhook – используйте URL-адрес конечной точки сервера, поддерживающий HTTPS. При развертывании на собственном настраиваемом сервере вам понадобится доверенный (ca.pem) сертификат, а не самозаверяющий. Прочтите сообщение в нашем блоге о том, как протестировать своего бота локально.

Установка

Эта библиотека выпущена на maven central.

Gradle

  группа компиляции: 'com.viber', имя: 'viber-bot  ', версия:' 1.0.11 ' 

Maven

    com.viber   viber-bot  1.0.11 

Документация

JavaDocs

Все общедоступные API задокументированы с помощью JavaDocs, которые можно найти в репозитории GitHub.

Примеры проектов

Мы создали два примера проектов, которые помогут вам начать работу:

  • Пример Spring-Boot с использованием пакета spring-boot-starter-web.
  • Пример NanoHTTPd с крошечным встроенным HTTP-сервером под названием NanoHTTPd.

Простой обзор

 public void botExample () {ViberBot bot = new ViberBot (new  BotProfile («SampleBot», «http://viber.com/avatar.jpg»), «ВАШЕ_AUTH_TOKEN_HERE»);  bot.onMessageReceived ((событие, сообщение, ответ) -> response.send (сообщение)); //где-нибудь еще на выбранном вами веб-сервере: bot.incoming (Request.fromJsonString ("..."));} 

Вы можете использовать любой веб-сервер или рамки вам нравятся. Все, что вам нужно сделать, это вызвать API с помощью:

 bot.incoming (Request.fromJsonString ("...")); //orbot.incoming (Запрос. fromInputStream (inputStream)); 

Следует ли мне беспокоиться о синхронизации потоков моего веб-сервера? Является ли эта библиотека потокобезопасной?

Библиотека ботов Viber потокобезопасна и обеспечивает высокую степень одновременности. Вам не нужно ничего беспокоиться о синхронизации.

Все вызовы ViberBot # incoming () проходят через BlockingQueue , и порядок сохраняется. Все вызовы ввода-вывода выполняются непосредственно в том же потоке, в котором они были первоначально вызваны.

Могу ли я сделать вызовы ввода-вывода асинхронными и по-прежнему сохранять потокобезопасность для моего бота?

Да. Вы можете передать системное свойство для управления пулом потоков ввода-вывода:

com.viber.bot.executor.strategy = [DIRECT | THREAD] (по умолчанию DIRECT)

com.viber.bot.executor.threads = N (по умолчанию getRuntime (). availableProcessors () )

  • Примечание. Это не повлияет на способ использования библиотеки. Вам по-прежнему ничего не нужно синхронизировать.

Предоставляете ли вы базовый маршрутизатор для текстовых сообщений?

Ну смешно спросите вы. Да. Но небольшое предупреждение – сообщения, отправленные на обратный вызов вашего маршрутизатора, также будут отправлены в событие ViberBot # onMessageReceived .

 public void botTextRouterExample (  ) {bot.onTextMessage ("(привет | привет)", (событие, сообщение, ответ) -> response.send ("Привет" + event.getSender (). getName ()));} 

Сообщество

Присоединяйтесь к обсуждению на Gitter .

Оцените статью
futurei.ru
Добавить комментарий