Bot untuk VK di Python dengan MySQL dalam satu jam, bagian 1

Ada banyak tutorial di internet cara menulis bot untuk Vkontakte, tetapi semuanya memiliki kelemahan signifikan untuk pemula. Mereka memberikan basis yang sangat minim karena di masa depan akan sulit bagi pemula untuk memahami bagaimana hal-hal tertentu bekerja.

Dalam tutorial ini saya ingin menunjukkan cara membuat bot paling sederhana dengan fungsi dasar yang cukup besar.

Jadi mari kita mulai.

Apa yang kita butuhkan


  • Python sejak versi 2.7 (Semua kode diuji pada versi 2.7.16 dan 3.7.3)
  • Modul PyMySQL
  • Modul Vk_api
  • Modul permintaan
  • VKontakte Group (Perhatian! Bot akan bekerja secara tepat dari sisi grup, dan bukan dari sisi akun orang tersebut)
  • Basis data (termasuk data pengguna, dll.)

Koneksi


Pertama, kami akan menghubungkan semua perpustakaan:

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 

Sekarang Anda dapat mulai mengkonfigurasi bot dan basis data.

Dalam kasus saya, semua data ada di file config.py. Anda dapat meresepkannya di mana saja. Itu tidak akan mempengaruhi fungsi dengan cara apa pun.

Koneksi basis data


Untuk melakukan ini, buat fungsi menggunakan modul 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 

Fungsi ini akan mengembalikan data untuk pekerjaan lebih lanjut dengan database. Karenanya, kami mengganti data kami di tempat kami melihat "Anda_".

Konfigurasikan koneksi bot


Pertama, kita perlu pergi ke pengaturan grup kami:



Pilih tab Work with API dan buat kunci akses (di masa depan, akan berguna bagi kita untuk terhubung ke bot.



Buka tab "Long Poll API" dan aktifkan. Juga pilih versi terbaru yang tersedia



Pergi ke "Jenis Acara" dan juga sertakan semua yang Anda butuhkan. Saya memasukkan misalnya semuanya



Dan yang terakhir. Pergi ke Pesan> Pengaturan Bot dan aktifkan fitur bot. Sekarang Anda dapat pergi ke program itu sendiri.



Menghubungkan bot ke grup


Sekarang kita akan mendaftarkan koneksi bot ke polling panjang dan verifikasi tindakan dari sisi VK:

 vk_session = vk_api.VkApi(token=" ,      ") # vk_session = vk_api.VkApi(token = "a6f87v8c9a9sa87a7af9a0f9f9v8a6s6c5b5m6n8bds09asc8d7b87d87bd87n" vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, "id   ") # longpoll = VkBotLongPoll(vk_session, "637182735") for event in longpoll.listen(): #  if event.type == VkBotEventType.MESSAGE_NEW: 

Sekarang kami telah memasukkan bot itu sendiri, yang akan menerima pesan masuk dan menganalisisnya untuk pekerjaan lebih lanjut.

Bekerja dengan bot


Mari kita tambahkan fungsi bot untuk menanggapi pesan kami dengan pesan kami. Untuk melakukan ini, setelah baris terakhir kita menulis ini:

 if event.type == VkBotEventType.MESSAGE_NEW: #   #       if event.obj.text != '': #       if event.from_user: vk.messages.send( user_id=event.obj.from_id, random_id=get_random_id(), message=event.obj.text) 

Sekarang tentang metode vk.messages.send (). Ini adalah metode standar modul vk_api. Anda dapat membaca tentang metode pada dokumentasi Vkontakte resmi (tautannya ada di bawah).

Ini memungkinkan Anda untuk mengirim pesan ke pengguna.

Argumen user_id menunjukkan ke akun mana pesan ini harus dikirim. Dalam kasus kami, event.obj.from_id menunjuk ke akun yang baru saja mengirimi kami pesan. Artinya, kami mengirim pesan kepada orang yang mengirimnya kepada kami.
Argumen ini diperlukan!

Argumen random_id diperlukan agar Vkontakte tidak mengirim pesan 2 kali. Argumen ini diperlukan!

Argumen pesan sebenarnya menunjukkan pesan mana yang harus kita kirim. Event.obj.text menyimpan informasi tentang teks apa dalam pesan yang kami terima. Argumen ini juga diperlukan.

Anda dapat membaca lebih lanjut tentang argumen untuk metode ini di halaman Vkontakte resmi.

Luncurkan


Sekarang bot kami sudah siap dan kami bisa memulainya. Setelah memulai, Anda dapat dengan aman menulis ke bot dan melihat hasilnya.

Ringkasan


Bagian 1 ini selesai. Kami belajar menyalakan bot. Konfigurasikan, serta mengirim pesan.

Di bagian 2 kita akan menganalisis cara menggunakan pustaka PyMySQL untuk memasukkan pesan ke dalam basis data dan seterusnya.

Terima kasih sudah membaca!

Sumber daya yang bermanfaat


Dokumentasi api vkontakte resmi
Halaman modul PyMySQL resmi

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


All Articles