هناك العديد من البرامج التعليمية على الإنترنت حول كيفية كتابة روبوت لفكونتاكتي ، لكن لديهم جميعًا عيوب كبيرة للمبتدئين. إنها توفر قاعدة قليلة للغاية نظرًا لأنه سيكون من الصعب في المستقبل على المبتدئين فهم كيفية عمل أشياء معينة.
في هذا البرنامج التعليمي ، أريد أن أوضح كيفية جعل الروبوت الأكثر بساطة مع وظيفة أساسية كبيرة إلى حد ما.
لذلك دعونا نبدأ.
ماذا نحتاج؟
- Python منذ الإصدار 2.7 (تم اختبار جميع الشفرات في الإصدارات 2.7.16 و 3.7.3)
- وحدة PyMySQL
- وحدة Vk_api
- وحدة الطلبات
- VKontakte Group (انتباه! سيعمل الروبوت على وجه التحديد من جانب المجموعة ، وليس من جانب حساب الشخص)
- قاعدة البيانات (بما في ذلك بيانات المستخدم ، وما إلى ذلك)
صلة
أولاً ، سنربط جميع المكتبات:
import vk_api from vk_api.utils import get_random_id from from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType import pymysql.cursors import requests
الآن يمكنك البدء في تكوين الروبوت وقاعدة البيانات.
في حالتي ، كل البيانات موجودة في ملف config.py. يمكنك وصفهم في أي مكان. لن يؤثر على الوظيفة بأي طريقة.
اتصال قاعدة البيانات
للقيام بذلك ، قم بإنشاء دالة باستخدام وحدة PyMySQL:
def get_connection(): connection = pymysql.connect(host='you_host', user='you_user', password='you_password', db='you_db' charset='utf8mb4', cursorclass=mymysql.cursors.DictCursor) return connection
هذه الوظيفة سوف ترجع البيانات لمزيد من العمل مع قاعدة البيانات. وفقًا لذلك ، نستبدل بياناتنا حيث نرى "you_".
تكوين اتصال بوت
أولاً ، نحتاج إلى الانتقال إلى إعدادات مجموعتنا:

حدد علامة التبويب Work with API وقم بإنشاء مفتاح وصول (في المستقبل ، سيكون من المفيد لنا الاتصال بالبوت.

انتقل إلى علامة تبويب "Poll Poll API" وقم بتمكينها. اختر أيضًا أحدث إصدار متاح

انتقل إلى "أنواع الأحداث" وقم أيضًا بتضمين كل ما تحتاجه. أدرجت على سبيل المثال كل شيء

وآخر واحد. انتقل إلى الرسائل> إعدادات بوت وتمكين ميزة الروبوتات. الآن يمكنك الذهاب إلى البرنامج نفسه.

ربط الروبوت بمجموعة
الآن سنقوم بتسجيل اتصال الروبوت إلى استطلاع طويل والتحقق من الإجراءات من جانب VK:
vk_session = vk_api.VkApi(token=" , ")
الآن قمنا بتضمين الروبوت نفسه ، والذي سيتلقى الرسائل الواردة وتحليلها لمزيد من العمل.
العمل مع الروبوت
دعنا نضيف وظيفة روبوت للرد على أي من رسائلنا مع رسائلنا. للقيام بذلك ، بعد السطر الأخير نكتب هذا:
if event.type == VkBotEventType.MESSAGE_NEW:
الآن عن طريقة vk.messages.send () ، هذه هي الطريقة القياسية لوحدة vk_api. يمكنك أن تقرأ عن الأساليب الموجودة في وثائق فكونتاكتي الرسمية (سيكون الرابط أدناه).
يسمح لك بإرسال رسائل إلى المستخدمين.
تشير الوسيطة
user_id إلى الحساب الذي يجب إرسال هذه الرسالة إليه. في حالتنا ، يشير
event.obj.from_id إلى الحساب الذي أرسل إلينا للتو رسالة. أي أننا نرسل رسالة إلى الشخص الذي أرسلها إلينا.
هذه الحجة مطلوبة!
هناك حاجة إلى الوسيطة
random_id حتى لا يقوم Vkontakte بإرسال رسائل مرتين. هذه الحجة مطلوبة!
تشير وسيطة
الرسالة بالفعل إلى الرسالة التي يجب أن نرسلها. Event.obj.text بتخزين معلومات حول النص في الرسالة التي تلقيناها. هذه الحجة مطلوبة أيضًا.
يمكنك قراءة المزيد حول الوسيطات لهذه الطريقة على صفحة فكونتاكتي الرسمية.
إطلاق
الآن روبوتنا جاهز ويمكننا تشغيله. بعد البدء ، يمكنك الكتابة بأمان إلى الروبوت ورؤية النتيجة.
يؤدي
هذا الجزء 1 قد انتهى. تعلمنا تشغيل الروبوت. تكوينه ، وكذلك إرسال الرسائل.
في الجزء 2 ، سنحلل كيفية استخدام مكتبة PyMySQL لإدخال الرسائل في قاعدة البيانات وما إلى ذلك.
شكرا للقراءة!
موارد مفيدة
وثائق vkontakte api الرسميةصفحة وحدة PyMySQL الرسمية