Criando um Viberbot completo. Parte dois - primeiro contato ou "conversion_started"

Enviando a primeira mensagem para o usuário - seja bem-vindo e assine


Na primeira parte, aprendemos como iniciar um iniciador, instalar o webhook para o nosso projeto botviber.

Nesta segunda, aprenderemos como enviar a primeira mensagem mostrada aos nossos usuários, criar links para pesquisar e iniciar nosso bot, tanto dentro do ViberURL quanto no NoViberURL

imagem


Vamos formar links para o bot


1) QR offline - pode ser baixado da área de administração afiliada do viber

2) Link para mensagens instantâneas e transferência via ViberURL messenger

viber://pa?chatURI=dinner&context=fromhabr

3) NoViberURL link de redirecionamento na Internet, existem muitos encurtadores de URL - mas todos parecem spam, por isso recomendo criar seu próprio código a partir de três linhas de PHP e colocar o arquivo em sua hospedagem. Aqui está o conteúdo do arquivo foot.php

<?php
header ("Location: viber://pa?chatURI=dinner");
exit();

Saudações botviber ou "evento": "conversa_início"


Após abrir o QR ou clicar no link para o endereço do nosso aplicativo nos servidores Viber (Jetty), as solicitações POST com um evento ("event": "conversation_started") chegam e seu conteúdo completo se parece com o seguinte:

PARÂMETROS RECEBIDOS PÓS - ou JSON de 13 campos
{
  "chat_hostname": "SN-327_", #  Viber    -   "chat_hostname"
  "event": "conversation_started", #          
  "context": "fromlanding", #    UTM     
  "message_token": 5406893180055821524, #  
  "subscribed": false, #    ,   true   
  "timestamp": 1581161565470, # UNIXTIME 
  "type": "open", #  
  "user": {
    "api_version": 8,  #   API   . 
    "avatar": "https://media-direct.cdn.viber.com/avatar...", #      -   ,   
    "country": "RU", #       (UA-, BY-, IL-, MD - )
    "id": "J2k6sasdgghaazDeoXVYww==", # ID    
    "language": "ru", #      (  )
    "name": "Denis"#   Viber -      -     name  
  }
}


Mas na maioria dos casos, estamos interessados ​​apenas nesses 5 campos
{
  "context": "fromlanding", #      
  "subscribed": false,
   "user": {
    "country": "RU", #      
    "id": "J2k6sasdgghaazDeoXVYww==", # ID    
    "name": "Denis"#   ,   .
  }
}


E às vezes precisamos apenas de um campo
«id»: «J2k6sasdgghaazDeoXVYww==»

Este é o principal identificador Viber do usuário, um análogo de chat_id em telegrama.
E, observe que no carrinho chat_id, o único mensageiro em todos os bots é igual ao número de celular em todos os bots, e o ID da vibração é como um token e é único em um dos seus bots. Em outro bot, seu ID será diferente ...

Nós processamos e respondemos para obter uma das três respostas, como na captura de tela acima
a) type = "text"
b) e aqui vemos o caso clássico de type = "rich_media"
c) na terceira tela Type = "keyboard"

Mais detalhes sobre a API REST do viber , e abaixo consideraremos como obter a primeira opção

Como já vimos, o botviber pode ter a marca de qualquer empresa ou mini-shop, além de personalizar o estilo do site principal

1) para processar mensagens do usuário no arquivo de projeto myviberbot / views.py, faça as alterações:


#

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':
            #print(viber)
            #print("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 nosso projeto Django.

Infelizmente, “Rakuten Viber” não fornece páginas oficiais para a PA e a comunidade para ninguém, com exceção de grandes marcas e figuras públicas, portanto, para promoção de SEO e relações públicas em redes sociais etc. Aqui está uma amostra de recursos: Inicie o botviber com êxito. Para continuar ... No próximo artigo, analisaremos o evento ["message"], para processar mensagens do usuário, você aprenderá o que fazer para conduzir um diálogo, como separar as seguintes mensagens, geralmente como ensinar o botviber a entender que estas são as seguintes. (Criando um Viberbot completo no Django 2 e na API Riber do Viber. Parte três - mensagem) Materiais: documentação da API REST do viber















Django versão 2.2
Radio-miner

Source: https://habr.com/ru/post/undefined/


All Articles