إنشاء Viberbot الكامل. الجزء الثاني - الاتصال الأول أو "التحويل_البدء"

إرسال الرسالة الأولى إلى المستخدم - الترحيب والتوقيع


في الجزء الأول ، تعلمنا كيفية إطلاق المبتدئين ، وتثبيت webhook لمشروع botviber الخاص بنا.

في هذا اليوم الثاني ، سنتعلم كيفية إرسال الرسالة الأولى المعروضة لمستخدمينا ، وإنشاء روابط للبحث عن برنامج الروبوت الخاص بنا وإطلاقه ، سواء داخل ViberURL و NoViberURL

صورة


سنشكل روابط للبوت


1) QR غير متصل - يمكن تنزيله من منطقة الإدارة التابعة لـ viber

2) رابط ViberURL لنقل الرسائل والمراسلة

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

3) رابط NoViberURL لإعادة التوجيه على الإنترنت هناك العديد من اختصارات عناوين URL - ولكن جميعها تبدو كرسائل غير مرغوب فيها ، لذلك أوصي بإنشاء التعليمات البرمجية الخاصة بك من ثلاثة أسطر من PHP ووضع الملف على الاستضافة ، إليك محتويات ملف foot.php

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

تحيات botviber أو "event": "المحادثة_البدء"


بعد فتح QR أو اتباع الرابط إلى عنوان تطبيقنا من خوادم Viber (Jetty) ، تصل طلبات POST مع حدث ("الحدث": "chat_started") ويبدو محتواها الكامل كما يلي:

بريد المعلمات الواردة - أو JSON من 13 حقلاً
{
  "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  
  }
}


ولكن في معظم الحالات ، نحن مهتمون فقط بهذه المجالات الخمسة
{
  "context": "fromlanding", #      
  "subscribed": false,
   "user": {
    "country": "RU", #      
    "id": "J2k6sasdgghaazDeoXVYww==", # ID    
    "name": "Denis"#   ,   .
  }
}


وأحيانًا نحتاج إلى حقل واحد فقط
"Id": "J2k6sasdgghaazDeoXVYww =="

هذا هو معرف فايبر الرئيسي للمستخدم ، وهو نظير لـ chat_id في البرقية.
ويرجى ملاحظة أنه في عربة chat_id يوجد رسول واحد في جميع برامج الروبوت على الشبكة بالكامل - مثل رقم الهاتف المحمول والمعرف في الهاتف - إنه مثل رمز فريد من نوعه داخل أحد برامج الروبوت الخاصة بك. في روبوت آخر ، سيكون معرفك مختلفًا ...

نعالجها والإجابة للحصول على واحدة من الإجابات الثلاثة كما في الصورة أعلاه
أ) type = "text"
b) وهنا نرى الحالة الكلاسيكية من النوع = "rich_media"
c) على الشاشة الثالثة Type = "keyboard"

مزيد من التفاصيل حول viber REST API ، وفيما يلي سننظر في كيفية الحصول على الخيار الأول

كما نرى بالفعل ، يمكن وضع علامة على botviber لأي عمل أو متجر صغير ، بالإضافة إلى أنماط مخصصة لموقعك الرئيسي

1) لمعالجة رسائل المستخدم في ملف مشروع myviberbot / views.py ، قم بإجراء التغييرات:


#

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   .      ...')


أعد تشغيل مشروع Django الخاص بنا.

لسوء الحظ ، "Rakuten Viber" لا يعطي صفحات رسمية للسلطة الفلسطينية والمجتمع لأي شخص ، باستثناء العلامات التجارية الكبيرة والشخصيات العامة ، لذلك ، لتعزيز SEO والعلاقات العامة على الشبكات الاجتماعية ، وما إلى ذلك. فيما يلي عينة من الموارد: قم بتشغيل botviber بنجاح. للمتابعة ... في المقالة التالية ، سنقوم بتحليل الحدث ["رسالة"] ، لمعالجة رسائل المستخدم ، سوف تتعلم ما يجب القيام به لإجراء حوار ، وكيفية فصل الرسائل التالية ، وعمومًا كيفية تعليم botviber لفهم أن هذه هي التالية. (إنشاء Viberbot الكامل على Django 2 و Viber REST API. الجزء الثالث - الرسالة) المواد: وثائق viber REST API















Django الإصدار 2.2
Radio-miner

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


All Articles