قم بتثبيت Webhook ليعمل البوت على فايبر وأرسل أول طلب POST إلى رسول الخلفية
استنادًا إلى تجربتي في تطوير Viber والكثير من الآراء المختلطة ، أنشر سلسلة من المقالات حول إنشاء وإطلاق viberbot. لفهم الصورة الكاملة ككل ، سنعمل مع REST API VIBER نظيف ، بدون أي أغلفة.أثبت Radio Viber أنه غير قياسي للغاية ، لذلك سنقوم بإنشاء روبوت حوار كلاسيكي ( تم فصل الآلاف منه في البرقية ).في الوقت نفسه ، سنرى جميع عيوب ومزايا botviber ونفهم: ما هو أسهل في روسيا - botviber VS bottelegram ، الاختلافات الرئيسية بين تطوير الروبوت لهذه المنصات.
مع مجموعة من الأساليب الهزيلة أكثر من تلك الموجودة في السلة - ومع ذلك ، في Viber ، يمكنك إنشاء واجهات واجهة مستخدم أكثر فاعلية ولا تقتصر على اللون الرمادي الباهت لأزرار القائمة وأزرار مضمنة.المقالة موجهة أكثر للمبتدئين الذين لم يتمكنوا من التعامل مع Viber REST API.في غضون شهر ، 1-2 برنامج تعليمي في الأسبوع ، أي شخص يريد أن يتعلم كيفية إنشاء برامج الروبوت على Viber messenger ، مع لوحة إدارة شخصية ، وأدوات توزيع الرسائل المجمعة ، دون أي مصممين ومنصات. نحن أيضًا ننشئ صفحة minilanding (مثل روبوتات برقية) للبحث عن برنامج الروبوت الخاص بك والترويج له.أوصي بدراسة Django بالتوازي ، الذي لم يبدأ بعد ، وميزات عمله في أوضاع التطوير والإنتاج.لا يوجد روبوت كافي - ثم لنبدأ
1. قم بتثبيت وتشغيل Django> = 2.1 و Python> = 3.6.إنشاء تطبيق myviberbot باستخدام أمر مدير Django القياسي:python manage.py startapp myviberbot
لا تنس أن تضيفه إلى ملف settings.py في هذا القسم:
DEBUG = True
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myviberbot',
]
لنفترض أنني قمت بربط مجال HTTPS الخاص بي وأريد تثبيت webhook لـ viber-bot على:yourdomain.ru/webhook2020 - وقمت بتغيير yourdomain.ru إلى نطاقك بالطبع.وسنتعامل مع جميع الأحداث في وظيفة def trx_bot () من myviberbot.views - ولكن المزيد عنها ...أولاً وقبل كل شيء ، سنجري التصحيحات المقابلة لملف urls.py في قائمة محتوياته الكاملة:
from django.contrib import admin
from django.urls import path
from myviberbot.views import trx_bot
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('webhook2020', trx_bot),
]
إذا لم تتعمق في الخفايا الدقيقة لـ Django - هنا ، في الرمز أعلاه ، فقد أرسلنا جميع الطلبات (الطلب) إلى webhook2020 على الإطلاق إلى وظيفة trx_bot ، الموجودة في مجلد مشروع myviberbot في ملف views.py. اعتبرها أدناه.
from django.shortcuts import HttpResponse
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def trx_bot(request):
if request.method == "POST":
viber = json.loads(request.body.decode('utf-8'))
if viber['event'] == 'webhook':
print(viber)
print("Webhook ")
return HttpResponse(status=200)
else:
print(" Webhook - , POSTMAN")
return HttpResponse(status=500)
return HttpResponse(status=200)
بعد تلقي 200 OK منا ، تكون خوادم فايبر الخلفية جاهزة للعمل معنا.سترى الرسالة التي وصلت إلى مرسالك في دردشة برنامج الروبوت الخاص بك (تمت إضافة وظيفة الحوار أو إضافة الدردشة 1 إلى 1).ولكن كيفية إرسال طلب POST إلى الواجهة الخلفية Viber أو تثبيت Webhook - هذا السؤال يقلق العديد من الأشخاص الذين اعتادوا على العمل مع برقية باستخدام طريقة get ، ولكن لا بأس - قرأنا بعناية:2. أنا متأكد من أنك قد تلقيت بالفعل رمز الروبوت هنا ونشرنا تطبيق django على الاستضافة ( VDS أو Shared ) أو في البيئة المحلية (في هذه الحالة ، سيساعد نفق ngrok المؤقت) ،أ) إذا كنا نختبر المشروع على الجهاز المحلي ،فسنبدأ مع فريق المدير: python manager.py runserverبعد بداية ناجحة ، نرفق ngrok.ب) وهناك الكثير من الطرق للانطلاق في استضافة - أنا شخصياً أستخدم الراكب على الإنجاب. في حالة النحل ، ضع نسخة الحاوية مع php5.6 ليست أعلى - هذه نصيحة من begetovtsev.لذلك - بدأ التطبيق - وضع webhook
يمكن لأي شخص يعرف كيفية استخدام المكوّن الإضافي POSTMAN لمتصفح Chrome تخطي الفقرة التالية وإرسال POST لـ webhook مباشرة من المتصفح.سنقوم بإنشاء ملف على الجهاز المحلي بأي اسم ، على سبيل المثال sethook.py ، مع عدم نسيان مكتبة الطلبات (طلبات تثبيت النقاط)
import requests
import json
auth_token = 'xxxxxxxxx-ttttttttttttttttt-wwwwwwwwwwww'
hook = 'https://chatapi.viber.com/pa/set_webhook'
headers = {'X-Viber-Auth-Token': auth_token}
sen = dict(url='https://yourdomain.ru/webhook2020',
event_types = ['unsubscribed', 'conversation_started', 'message', 'seen', 'delivered'])
r = requests.post(hook, json.dumps(sen), headers=headers)
print(r.json())
نبدأ بالأمر من دليل العمل:python sethook.pyهذا كل شيء! يتم تعيين Webhook بواسطة طريقة POST. ترى رسالة وصلت إلى الدردشة (تمت إضافة وظيفة الحوار) ، مما يعني أنه تم تثبيت الرد التلقائي على الويب.للمتابعة ...في المقالة التالية سنقوم بتحليل الحدث ["chat_started"] ، للاتصال الأولي مع المستخدمين وتهيئة التفاعل معهم ، ستكتشف أن viberbot الخاص بك يعرف عن جميع المستخدمين وما لا يعرفه.الجزء 2:إنشاء Viberbot الكامل على Django 2 و Viber REST API. الجزء الثاني -المواد المناقضة :توثيق فايبر REST APIDjango الإصدار 2.2Radio-miner