Как создать бота viber на python
Боты для социальных сетей и мессенджеров в последние годы все больше и больше набирают популярность. Мобильные приложения для большинства популярных социальных сетей есть почти у каждого в смарфоне, что облегчает использование ботов.
Существует два типа ботов:
- сложные, которые могут самообучаться, вести диалог, как человек;
- специализированные боты для выполнения конкретных задач. Например, узнать где в данный момент находится ваша посылка, посмотреть актуальные скидки в магазине, узнать историю автомобиля по vin-номеру и многие другие. Кроме того, бот может сам автоматически оповещать о статусе вашей посылке, о появлении новых акций в магазине и о многом другом. И поэтому, многие компании разработали своих ботов, с помощью которых они могут оказывать услуги более удобным и быстрым способом.
Работу начнем с изучения официальной документации Viber, она находится тут:
В компании Viber позаботились о разработчиках, которые захотят создать новых viber-ботов, и создали для популярных языков программирования уже готовые библиотеки, в которые инкапсулированы сложные операции по работе с сервисом Viber, что значительно упрощает разработку ботов.
В данный момент имеются библиотеки для Python и Node.JS.
Для разработки будем использовать язык программирования Python3.
Процесс создания бота разделим на несколько шагов:
Создание бота в сервисе Viber
Создание каркаса бота на Python
Установим библиотеку для бота от viber:
Версия python для этой библиотеки должна быть выше 2.7.
В качестве фреймворка для python возьмем легковесный Flask:
Создадим и сконфигурируем нашего бота:
Так выглядит запуск сервиса у меня:
Обращаю внимание, что это только ознакомительный пример и бота я запускал на локальном компьютере, поэтому не заполнил данные для ssl. Имеется возможность указать ssl-сертификат через параметр ssl_context.
Установим веб-хуку
Первый - через python:
где X-Viber-Auth-Token – токен, полученный ранее.
В переменной event_types мы можем указать на какие типы событий наш бот будет реагировать.
Например, у нас должна быть кнопка поиска вакансий, для этого добавим следующий код:
Если нужно добавить несколько кнопок, то их нужно перечислить в списке Buttons.
Область для кнопок имеет сетку в 6 колонок. В параметрах кнопки указаны следующие характеристики:
ActionBody: action_type|value или просто action_type.
Это поле может содержать только строковые значения, поэтому сохраним данные в json, а передавать их пользователю будем через параметр tracking_data в виде строки, путем преобразования json.dumps() и обратно через json.loads().
Использование ngrok для локальной разработки
Как я отмечал выше, чтобы ваш сервис работал с Viber, он должен быть запущен через ssl (самоподписанные сертификаты работать не будут, нужен хотя бы let’s encrypt).
У меня не было задачи размещать сервис с ботом на каком-либо сервере, я ограничился только локальной разработкой, но мне нужно было, чтобы мой сервис был доступен извне, для этого я взял замечательную утилиту ngrok.
С помощью нее вы можете пробросить свой локальный порт наружу даже с защищенным туннелем. Мой сервис локально был развернут на 8443 порту, поэтому я запустил ngrok cо следующими параметрами:
После это получаем такую информацию:
Этот адрес сервера нужно отправлять при установке хука инициализации бота.
Пример работы
После нажатия кнопки (Поиск вакансий):
После выбора страны (Россия):
После выбора профиля деятельности (Разработка):
После указания опыта работы(Неважно) получаем такие результаты:
По нашему запросу нашлась одна вакансия.
К сожалению, мы самостоятельно не можем добавить нашего бота в общий список всех доступных ботов и даже не можем дать на него прямую ссылку, а все потому, что у компании Viber строгие требования к чат-ботам и нужно обращаться в компанию Viber с просьбой о подтверждении (судя по статьям в интернете, такое подтверждение удается получить только крупным компаниям).
Полный код бота доступен по адресу:
python, viber
Чат Bot очень популярен в наши дни. С Chat Bot вы можете подключаться к своим клиентам с помощью Deeper Interactions и развивать свой бизнес.
В этой статье я расскажу, как разработать Viber Chat Bot за 6 простых шагов с использованием PHP.
1. Создать публичный аккаунт в Viber
2. Получить токен аутентификации
Токен аутентификации генерируется при создании публичной учетной записи и может быть просмотрен администратором учетной записи на экране «Изменить информацию» публичной учетной записи.
Пример токена : 455a0f2c05b4fe54-cb4e33d3200fbbae-95f29ebc06af09a8
Пример страницы детализации аккаунта для редактирования Viber
3. Настройте webhook
Настройка webhook будет выполнена путем вызова API set_webhook с действительным и сертифицированным URL.
После отправки запроса set_webhook Viber отправит обратный вызов в webhook, чтобы проверить его доступность и вернет ответ пользователю.
Примечание . Перед отправкой запроса в API set_webhook нам необходимо иметь код для обработки обратного вызова из Viber по нашему URL-адресу webhook. Пример кода PHP приведен в этой статье.
Чтобы сделать запрос POST к API set_webhook , мы можем использовать cURL или такие инструменты, как POSTMAN. Вот пример кода PHP:
Теперь нам нужно дать ответ как
status = результат действия (0 для успеха, номер ошибки для ошибок)
status_message = Ok или причина
ошибки event_types = доставлено или замечено (еще не реализовано)
Это установит URL-адрес webhook . Теперь, когда происходит событие, связанное с публичной учетной записью, обратный вызов отправляется на URL-адрес webhook, и нам нужно обрабатывать события в URL-адресе webhook, которые обсуждаются ниже.
Код для URL веб-крючка:
Изображение для клавиатуры может быть:
Пример меню чата Viber
Текст кнопки может поддерживать некоторые теги HTML:
где auth_token – строка токена, предоставленная Viber при создании публичной учетной записи.
Если вы хотите создать чат-бота для Facebook, Telegram или Slack, у вас, как правило, есть выбор: вы можете использовать одну из платформ разработки ботов без кода или написать его самостоятельно.
Но если вам нужен бот для Viber, ключевые платформы на данный момент ничем вам не помогут.
Придётся создавать его самостоятельно, с использованием любого языка программирования, с помощью которого можно послать POST запрос. В этой статье мы будем использовать PHP.
Перед тем, как привязать webhook, надо подумать, какие дополнительные события нужны будут нашему боту, и добавить их в наш запрос. Это могут быть следующие события:
Обязательные события, например, ”message”, придут в любом случае, на них специально подписываться не надо.
Можно написать скрипт, который будет выполнять необходимый запрос, но мы сделаем это через Postman, многофункциональное приложение для работы с API.
Вставляем наши данные во вкладке Headers.
Во вкладке Body вставляем ссылку на бота.
В случае, если вы не пользуетесь Postman, а пишете код в PHP, привязка webhook будет выглядеть так:
С помощью следующего кода мы записываем в текстовый файл входящую информацию от Viber. Это облегчит будущую разработку.
file_put_contents ( "viber.txt" , file_get_contents ( "php://input" ) ) ; $ message [ 'text' ] = "We work for you from Monday till Friday: 9AM - 6PM" ; $ message [ 'text' ] = "We work for you from Monday till Friday: 9AM - 6PM" ;Наш демо-бот готов!
Так он выглядит в Viber.
Что с ним пока нельзя делать — это создать глубокую ссылку на него (с использованием URI аккаунта, как мы писали выше) и найти его во вкладке с ботами Viber (discover screen) – ни среди ботов, представленных в подборках, ни при помощи поиска. Для того, чтобы ваше детище появилось там, нужно получить эппрув от Viber, заполнив «форму публикации бота» (есть в документации). У Viber целая куча предрассудков требований, которым бот должен удовлетворять для утверждения и публикации, включая «уникальную ценность» и хотя бы минимальное понимание свободного ввода пользователя.
Подробнее о публикации бота расскажем в будущем.
Роман Брязгалов, php-разработчик, специалист по диалоговым системам Singularika
Необходимо написать бота для вайбера (язык программирование не принципиален (Python, PHP) информационного характера. Цель бота - информировать студентов и преподавателей об изменениях в учебном процессе, а так же получать доступ к расписанию.
Так как это дипломный проект, нужны все исходники
Результаты работы
Отзыв заказчика о сотрудничестве с Владимиром Назаровым
Создание viber bot с использованием API (на дипломный проект)Работа выполнена качественно и в кратчайшие сроки. Буду сотрудничать в будущем
Отзыв фрилансера о сотрудничестве с Mila Brez
Создание viber bot с использованием API (на дипломный проект)было приятно общаться с человеком. Тз., оплата все на высшем уровне
Здравствуйте Мила. Есть опыт в создании Телеграм и Вайбер ботов и готов помочь в создании Вашего. Пишите, я свободен и готов к сотрудничеству.
Доброго времени суток, есть опыт в создании ботов с Python для Viber. Помогу составить ТЗ, офоромить исходники с коментариями и сам диплом если понадобится. Готов к сотрудничеству , хочу обсудить детали проэкта
Здравствуйте, готов выполнить ваш дипломный проект качественно и быстро на пхп,
Обращайтесь.
Буду рад работать с вами.
Готов реализовать ваш проект для дипломной работы. Обращайтесь буду рад помочь.
Добрый день, готов начать работу сегодня. Опыт работы с ботами, API имею. Всё сделаю быстро и качественно на python
Занимаюсь программирование более 3 лет
Являюсь full-stack веб-разработчикам.
Быстро откликаюсь на ваши вопросы и преподношу вам наилучший/понятный ответ.
За три года сталкивался с огромным родом задач и проблем, соответственно опыт есть на легкие, средние и большую часть сложных задач .
При себе имеется небольшая база готовых скриптов.
Писать код могу и в пространственном и в объектном подходе.
… Есть знания в веб-дизайне и анимации. Так же есть опыт в построении анимаций на css и js.
Верстка быстрая, качественная и pixel-perfect.
Быстро обучаюсь новому.
Знаком адаптиной версткой
Готов на сопровождение проектов и долговременного сотрудничества
Навыки и умения :
Frontend
Html/html5 (pug)
css/css3 препроцессоры (less/sass)
js (Jquery) , Ajax,
Node.js
Bootstrap 3/4
Адаптивная, кроссбраузерная верстка
CMS: Большинство популярных (WordPress, OpenCart и тд.)
Backend
Php любой подход
laravel
Бд mysqli (есть опыт работы с ORM RedBeanPhP)
Создание чат-ботов
парсинг данных
WhatsApp/Viber +375296305338
telegram @HelloMean
Пишите в любое время суток, я стараюсь быть онлайн постоянно
Выполняю все максимально быстро и качественно, так как особо предан своему делу
Читайте также: