Enviar el primer mensaje al usuario: bienvenido y firme
En la primera parte, aprendimos cómo iniciar un iniciador, instalar webhook para nuestro proyecto botviber.En este 2do, aprenderemos cómo enviar el primer mensaje que se muestra a nuestros usuarios, crear enlaces para buscar y lanzar nuestro bot, tanto dentro de ViberURL como NoViberURL
Formaremos enlaces al bot
1) QR sin conexión: se puede descargar desde el área de administración de afiliados de viber2) Enlace para ViberURL messenger y messenger transferviber://pa?chatURI=dinner&context=fromhabr
3) NoViberURL redirige el enlace en Internet, hay muchos acortadores de URL, pero todos parecen spam, por lo que recomiendo crear su propio código a partir de tres líneas de PHP y colocar el archivo en su alojamiento, aquí está el contenido del archivo foot.php<?php
header ("Location: viber://pa?chatURI=dinner");
exit();
Saludos botviber o "evento": "conversación_iniciada"
Después de abrir el QR o seguir el enlace a la dirección de nuestra aplicación desde los servidores de Viber (Jetty), las solicitudes POST con un evento ("evento": "conversación_iniciada") llegan y su contenido completo se ve así:POST DE PARÁMETROS ENTRANTES - o JSON de 13 campos{
"chat_hostname": "SN-327_",
"event": "conversation_started",
"context": "fromlanding",
"message_token": 5406893180055821524,
"subscribed": false,
"timestamp": 1581161565470,
"type": "open",
"user": {
"api_version": 8,
"avatar": "https://media-direct.cdn.viber.com/avatar...",
"country": "RU",
"id": "J2k6sasdgghaazDeoXVYww==",
"language": "ru",
"name": "Denis" №
}
}
Pero en la mayoría de los casos solo nos interesan estos 5 campos{
"context": "fromlanding",
"subscribed": false,
"user": {
"country": "RU",
"id": "J2k6sasdgghaazDeoXVYww==",
"name": "Denis" №
}
}
Y a veces solo necesitamos un campo"Id": "J2k6sasdgghaazDeoXVYww =="
Este es el identificador principal de Viber del usuario, un análogo de chat_id en telegrama.Y, tenga en cuenta que en el carrito chat_id, el único mensajero en todos los bots es el mismo que el número de teléfono móvil en todos los bots, y la identificación del ambiente es como un token y es único dentro de uno de sus bots. En otro bot, tu identificación será diferente ...
Los procesamos y respondemos para obtener una de las tres respuestas como en la captura de pantalla anteriora) type = "text"b) y aquí vemos el caso clásico de type = "rich_media"c) en la tercera pantalla Type = "keyboard"Más detalles sobre la API REST de viber , y a continuación consideraremos cómo obtener la primera opciónComo ya vemos, botviber puede ser calificado para cualquier negocio o una mini tienda, y también personalizar estilos para su sitio principal
1) para procesar mensajes de usuario en el archivo de proyecto myviberbot / views.py, realice los cambios:
import requests
import json
from django.shortcuts import HttpResponse
from django.views.decorators.csrf import csrf_exempt
auth_token = '45df835d27d01f-cd2e7wetwerga18a8-9a7wert786234'
url = 'https://chatapi.viber.com/pa/send_message'
headers = {'X-Viber-Auth-Token': auth_token}
def sending(func):
def wrapped(*args):
return requests.post(url, json.dumps(func(*args)), headers=headers)
return wrapped
@sending
def send_text(agent, text, track=None):
m = dict(receiver=agent, min_api_version=2, tracking_data=track, type="text", text=text)
return m
@csrf_exempt
def trx_bot(request):
if request.method == "POST":
viber = json.loads(request.body.decode('utf-8'))
if viber['event'] == 'conversation_started':
print(" ")
conversation(viber)
elif viber['event'] == 'webhook':
return HttpResponse(status=200)
else:
print(" Webhook - , POSTMAN")
return HttpResponse(status=500)
return HttpResponse(status=200)
def conversation(viber):
id = viber['user']['id']
if viber['subscribed']:
send_text(id, ' ')
else:
send_text(id, ' ?\n\n . ...')
Reinicie nuestro proyecto Django.Desafortunadamente, "Rakuten Viber" no ofrece páginas oficiales a PA y la comunidad a nadie, con excepción de grandes marcas y figuras públicas, por lo tanto, para la promoción de SEO y relaciones públicas en las redes sociales, etc. Recomiendo crear un minilanding, una pequeña página a la que todos acceden desde el sitio principal u otros. Aquí hay una muestra de recursos: Inicie con éxito botviber. Continuará ... En el próximo artículo, analizaremos el evento ["mensaje"], para procesar los mensajes de los usuarios, aprenderá qué hacer para llevar a cabo un diálogo, cómo separar los siguientes mensajes, en general cómo enseñar a botviber a comprender que estos son los siguientes. (Creación de un Viberbot completo en Django 2 y la API REST de Viber. Tercera parte - Mensaje) Materiales: documentación de la API REST de viber
Django versión 2.2Radio-miner