Php сообщение в Viber — Viber bot (Вайбер бот) и интеграция с Пабликом

Вступление

В ноябре 2016 года Viber внедрил публичные аккаунты (Viber public account, или просто PA). С их выходом стало доступно и api (REST), которое позволяет:

  • вести переписку с пользователем
  • проверять статус подписчиков (онлайн, оффлайн)
  • получить информацию о конкретном подписчике
  • вносить записи (посты) на свою страницу

REST API интерфей взаимодействия с Вайбером позволяет нам более плотно интегрировать функции мессенджера в 1С для взаимодействия пользователей с системой через смартфоны и планшеты.

Функции робота

За основу взята предыдущая разработка Телеграм бот, которая имеет следующую функциональность:

  • Формирование сохраненного варианта отчета на СКД (Работает со справочником «варианты отчетов». Розница, УТ 11)

  • Задание параметров СКД в диалоге с пользователем (дата, булево)

  • Отправка сформированных отчетов пользователю (html,xls, pdf и т.д.)

  • Настраиваемое меню Вайбер бота

  • Разграничение пунктов меню по РОЛЯМ

  • Управление доступом и ролями пользователей тоже из бота

  • Резервное копирование и перенос настроек

  • Запуск не ограниченного числа роботов в одной базе

  • Назначения роли новому пользователю

  • Назначения пользователя 1С новому пользователю

  • Режим подтверждения доступа к роботу по пин-коду

  • Быстрые кнопки меню для упрощения работы пользователей

  • Настраиваемые рекламные сообщения для первого и каждого сообщений

  • Заглушка. Временное (или постоянное) отключение основных функций робота с соответствующим сообщением

  • Рассылка произвольных сообщений пользователям бота

  • Выполнение произвольного кода (для сообщения пользователю, показ быстрых кнопок, отправка файлов)

  • Настройка прокси-сервера для подключение в интернет

Особенности взаимодействия с Вайбером

Вайбер предлагает нам способ доставки сообщений от пользователей к системе — Вэбхук (Webhook).

Иначе говоря, вэбхук — это когда пользователь отправляет сообщение, сервер вайбер обрабатывает его и делает вызов нашего сервера (куда именно сервер вайбера должен постучаться после того как ему пришлю сообщение мы указываем сами). Таким образом происходит практически мгновенная достатка и обработка сообщения.

Этот способ довольно требовательный к тому, чего обычно не бывает на компьютерах и серверах, где обычно используют 1С.

Во-первых, нужен открытый входящий канал к опубликованному из 1С http-сервису, домен или постоянный IP адрес

Во-вторых, этот канал должен быть https, т.е. иметь ssl сертификат.

Варинат 1

Если все это для Вас не представляет сложности — тогда можно воспользоваться одним из комплектов в этой публикации — Расширение конфигурации. В расширение встроена та же самая обработка из комплекта и http-сервис, который вызывает метод обработки.

В виду того что в расширени используется http-сервис который необходимо опубликовать, а делается это опытным администраторм — расширение выполнено в пустой конфигурации. а значит администратор системы должен будет подготовить его для своей конфигураци.

Особенностью работы с Вайбер (в отличии от Телеграм) является то, что сервера вайбер не принимают файлы, картинки и прочий контент, а принимают только http-ссылки на них, по-этому нам с Вами необходимо заботиться о доступности файлов из интернета самостоятельно.

Для этого в расширении представлен метод получения файлов. Суть проста, допустим пользователь, общаясь с ботом, запросил у него отчет. Бот сохраняет на сервере файл, и отправляет ссылку на этот файл. Когда пользователь получает по ссылке контент — он обращается к нашему опубликованному http-сервису с именем файла, сервер отдает этот файл.

Вариант 2

Когда мы не можем позволить себе входящий https канал, но выход все же есть!

Если https не может прийти в 1С, пусть 1С придет в https…

Схема включается в себя промежуточный узел (назовем его ВБ — Вайбер Буфер), которых сохраняет сообщения и контент для последующей обработки.

(Пользователь) —> (Вайбер) —> (ВБ) <— (1С-бот)

Вайбер буфер реализван на php и использует Heroku (Необходимо зарегистрироваться и подтвердить аккаунт)

Это позволяет решить трудности:

  1. Приложение, опубликованное в heroku уже имеет https адрес https://<appname>.herokuapp.com и это бесплатно
  2. Имеется возможность сохранять сообщения от пользователей из доставлять в 1С по инициативе 1С
  3. Контент (файлы, картинки) доступны для пользователей в этом приложении

Heroku имеет ограничения при бесплатном использовании, на достижение этих ограничений влияет интенсивность взаимодействия пользователй с ботом. Обычно, для решения большинства задач с помощью бота и 1с бесплатного тарифа вполне досаточно, но если есть потребность в большем объеме — то можно перейти на платный тариф или развернуть ВБ на своем хостинге.

В этом варианте робот может работать как внешняя обработка, подключенная в стандартный механизм (там же есть возможность добавить команду внешней обработки как регламентное задание)

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

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

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

Это позволяет сразу начать пользоваться роботом.

Код Вайбер-буфера открыт и находится тут

Разместить собственную копию Вайбер буфера в heroku Вы можете уже сейчас при помощи этой волшебной кнопки

В настройках необходимо задать имя приложение, которое нужно вписать в обработку в формате <name>.herokuapp.com

Поделиться:
Нет комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.