Как правильно настроить бота Viber на Python (Django)
Я абсолютный новичок в Viber bot, и я не могу заставить своего бота отправить приветственное (или любое другое) сообщение пользователю, даже если он подписан на мой аккаунт Viber bot. Я перепробовал все учебники, которые нашел в интернете, прочитал документацию Viber Bot Python и REST, некоторые учебники, которые нашел на github, например this и this и все варианты кода, которые приходили мне в голову - но я все равно не смог заставить его работать.
У меня есть домен сайта с SSL (Let's Encrypt), и все должно быть в порядке. Также, я использовал Postman для установки Webhook и получил статус 0 (ok), так что пользователи теперь могут подключаться к моему боту и писать ему сообщения. Вот что у меня есть на данный момент
views.py (django)
from viberbot import Api
from viberbot.api.bot_configuration import BotConfiguration
from viberbot.api.messages.text_message import TextMessage
from viberbot.api.messages.data_types.contact import Contact
from viberbot.api.viber_requests import ViberConversationStartedRequest
from viberbot.api.viber_requests import ViberFailedRequest
from viberbot.api.viber_requests import ViberMessageRequest
from viberbot.api.viber_requests import ViberSubscribedRequest
from viberbot.api.viber_requests import ViberUnsubscribedRequest
from django.views.decorators.csrf import csrf_exempt
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
viber = Api(BotConfiguration(
name='MyBotName',
avatar='https://someavatar.com/avatar.jpg',
auth_token='mytoken'
))
def hook(request):
logger.debug("received request. post data: {0}".format(request.get_data()))
viber_request = viber.parse_request(request.get_data())
if isinstance(viber_request, ViberConversationStartedRequest) :
viber.send_messages(viber_request.get_user().get_id(), [
TextMessage(text="Welcome!")
])
elif isinstance(viber_request, ViberSubscribedRequest):
viber.send_messages(viber_request.get_user.id, [
TextMessage(text="Thanks!")
])
return Response(status=200)
Итак, пользователь, подписавшийся на рассылку, должен получить два сообщения, но я не получаю ни одного из них. Также, Viber показывает, что сообщения (отправленные пользователем боту) были доставлены (два ✓✓✓). Я проверял журнал моего сервера, но там нет ни одной строки из журнала Viber :-/ Я использую python 2.7 и Django 1.9.11
Кто-нибудь может мне сказать, что я упускаю?