Senden der ersten Nachricht an den Benutzer - Willkommen und Unterschreiben
Im ersten Teil haben wir gelernt, wie man einen Starter startet und einen Webhook für unser Botviber-Projekt installiert.In diesem zweiten Abschnitt erfahren Sie, wie Sie die erste angezeigte Nachricht an unsere Benutzer senden, Links zur Suche erstellen und unseren Bot sowohl in ViberURL als auch in NoViberURL starten
Wir werden Links zum Bot bilden
1) Offline-QR - kann aus dem Administratorbereich des Viber- Partners heruntergeladen werden.2) Link für Instant Messenger und Übertragung über ViberURL Messengerviber://pa?chatURI=dinner&context=fromhabr
3) NoViberURL- Weiterleitungslink im Internet Es gibt viele solcher URL- Kürzungen - aber sie sehen alle wie Spam aus. Ich empfehle daher, Ihren eigenen Code aus drei PHP-Zeilen zu erstellen und die Datei auf Ihrem Hosting abzulegen. Hier ist der Inhalt der Datei foot.php<?php
header ("Location: viber://pa?chatURI=dinner");
exit();
Grüße Botviber oder "Ereignis": "Konversationsstart"
Nach dem Öffnen des QR oder dem Klicken auf den Link zur Adresse unserer Anwendung von Viber (Jetty) -Servern kommen POST-Anforderungen mit einem Ereignis ("Ereignis": "Konversationsstart") an und ihr vollständiger Inhalt sieht folgendermaßen aus:INCOMING PARAMETERS POST - oder JSON von 13 Feldern{
"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" №
}
}
In den meisten Fällen interessieren uns jedoch nur diese 5 Bereiche{
"context": "fromlanding",
"subscribed": false,
"user": {
"country": "RU",
"id": "J2k6sasdgghaazDeoXVYww==",
"name": "Denis" №
}
}
Und manchmal brauchen wir nur ein Feld"Id": "J2k6sasdgghaazDeoXVYww =="
Dies ist die Haupt-Viber-ID des Benutzers, ein Analogon von chat_id im Telegramm.Beachten Sie außerdem, dass im cart_id-Warenkorb der eine Messenger in allen Bots mit der Handynummer in allen Bots identisch ist und die ID der Stimmung wie ein Token ist und in einem Ihrer Bots eindeutig ist. In einem anderen Bot wird Ihre ID anders sein ...
Wir verarbeiten sie und antworten, um eine der drei Antworten wie im obigen Screenshot zu erhalten:a) type = "text"b) und hier sehen wir den klassischen Fall von type = "rich_media"c) auf dem dritten Bildschirm Type = "keyboard"Weitere Details zur Viber-REST-API Im Folgenden wird erläutert, wie Sie die erste Option erhaltenWie wir bereits sehen, kann botviber für jedes Unternehmen oder einen Mini-Shop gebrandmarkt werden und Stile an Ihre Hauptwebsite anpassen
1) Um Benutzernachrichten in der Projektdatei myviberbot / views.py zu verarbeiten, nehmen Sie die folgenden Änderungen vor:
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 . ...')
Starten Sie unser Django-Projekt neu.Leider gibt „Rakuten Viber“ PA und der Community niemandem offizielle Seiten, Ausnahmen von großen Marken und Persönlichkeiten des öffentlichen Lebens, daher für SEO-Werbung und PR in sozialen Netzwerken usw. Ich empfehle, eine Mini-Landung zu erstellen - eine kleine Seite, auf die jeder von der Hauptseite oder anderen geht. Hier ein Beispiel für Ressourcen: Starten Sie Botviber erfolgreich. Fortsetzung folgt ... Im nächsten Artikel analysieren wir das Ereignis ["Nachricht"]. Zur Verarbeitung von Benutzernachrichten erfahren Sie, wie Sie einen Dialog führen, wie Sie die folgenden Nachrichten trennen und wie Sie botviber im Allgemeinen beibringen, zu verstehen, dass dies die folgenden sind. (Erstellen eines vollwertigen Viberbot auf Django 2 und der Viber-REST-API. Dritter Teil - Nachricht) Materialien: Dokumentation zur Viber-REST-API
Django Version 2.2Radio-Miner