Реєстрація та Запуск Вайбер Бота за допомогою Python
У цій статті розглянуто процес реєстрації та запуску Viber-бота з використанням мови програмування Python.
Створення та запуск вайбер бота частково відрізняється від телеграм бота.
Крок 1
Спочатку необхідно перейти на сторінку адмін-панелі Viber (https://partners.viber.com/login)
Авторизуємось за допомогою свого облікового запису.
Переходимо до розділу Create Bot Account в якому необхідно вказати:
- Назва бота
- завантажити аватар
- опис бота
- вибрати категорію бота ( для яких цілей його створено)
Після цього ви отримаєте Token для вашого бота.
Крок 2
Необхідно налаштувати середовище для розробки. В даному прикладі будемоо розглядати створення бота за допомогою мови програмування python,
фреймворку Flask та бібліотеки viber-bot ( також можна використовувати бібліотеку NLTK).
Viber - боти працюють на основі вебхуків. Коли користувач надсилає повідомлення боту , Viber API надсилає НТТР- запит до сервера, а Flask обробляє ці запити та дозволяє реагувати на них. Також за допомогою Flask можна задати маршрути, які відповідають за різні дії ( обробка текстових повідомлень, відправка відповідей, реакція на підписку та інше)
Ngrok - це інструмент, який створює тимчасовий публічний доступ до вашого локального сервера через інтернет.
Для Viber - ботів це важливо тим, що:
- Ngrok генерує тимчасовий URL-адресу dble https://randomstring.ngrok.io, яка перенаправляє запити з інтернету на ваш локальний сервер. Також Ngrok працює через HTTPS, що відповідає вимогам безпеки Viber API. Без HTTPS вебхук не буде працювати.
Щоб встановити фреймворк та бібліотеки необхідно виконати код у консолі дерикторії проекту в якому ви створюєте Viber-бота
pip install flask
pip install viber-bot
Крок 3
Приклад простого Viber-бота з використанням бібліотеки viberbot та фреймворку Flask
from flask import Flask, request, Response
from viberbot import Api
from viberbot.api.bot_configuration import BotConfiguration
from viberbot.api.messages.text_message import TextMessage
from viberbot.api.viber_requests import ViberMessageRequest, ViberSubscribedRequest
app = Flask(__name__)
# Ініціалізація бота
viber = Api(BotConfiguration(
name=’Ваш_Бот’,
avatar=’https://link_to_avatar_image’, # Посилання на зображення для аватара
auth_token=’ВАШ_ТОКЕН’ # Ваш токен
))
@app.route(’/’, methods=[’POST’])
def incoming():
viber_request = viber.parse_request(request.get_data())
if isinstance(viber_request, ViberMessageRequest):
message = viber_request.message
user_name = viber_request.sender.name or "користувач"
if message.text.lower() == "привіт":
viber.send_messages(viber_request.sender.id, [
TextMessage(text=f"Привіт, {user_name}!")
])
return Response(status=200)
if __name__ == "__main__":
app.run(port=5000)
Крок 4
Локальний запус бота. Для запуску спочатку необхідно запустити Ngrok для створення публічної URL- адреси
ngrok http 5000
Копіюємо згенерований HTTPS URL-адрес.
Налаштовуємо вебхуки
import requests
webhook_url = "https://ваш_ngrok_url/"
auth_token = "ВАШ_ТОКЕН"
response = requests.post(
url="https://chatapi.viber.com/pa/set_webhook",
json={"url": webhook_url},
headers={"X-Viber-Auth-Token": auth_token}
)
print(response.json())
Цей код створить бота з обробником повідомлення від юзера "Привіт". У відповідь ви будете отримувати відповідь "Привіт, (ім'я)", де "ім'я" буде вашим іменем чи іменем юзера у Viber.