Sekarang bot sudah menjadi hal yang biasa dan ada di setiap langkah, tetapi jika Anda membutuhkan bot Anda di jejaring sosial VKontakte, maka ini mudah diimplementasikan.
Kami akan membutuhkan:
- Python
- VK Api
- Keinginan
Yah, tepat untuk pemula
Bagaimana cara menginstal Python?Unduh , jalankan penginstal.
Di mana menulis kode ini?Ke dokumen teks dengan ekstensi .py
Dan apa yang harus ditulis?Ya, bahkan dengan notebook. Secara pribadi, saya merekomendasikan
Notepad ++ Dan bagaimana cara menjalankannya?Melalui baris perintah.
python \.py
Bagaimana cara kerjanya?
Semuanya sangat sederhana, di api vk ada hal seperti itu, yang disebut
longpool berfungsi seperti ini:
Long Polling adalah teknologi yang memungkinkan Anda menerima data acara baru menggunakan "kueri panjang". Server menerima permintaan, tetapi tidak segera mengirim respons, tetapi hanya ketika suatu peristiwa terjadi (misalnya, pesan baru tiba) atau batas waktu yang ditentukan berakhir.
Dalam bahasa Rusia, kami mengirim permintaan ke server, dan dia, pada gilirannya, memencet VKontakte jika sesuatu terjadi di sana, misalnya, kami menerima pesan, ia berlari dan memberi tahu kami tentang hal itu. Dari sini kita akan menari.
Implementasi teknis
Pertama, kita perlu membuktikan dalam kontak bahwa kita adalah kita, dan bukan orang lain. Ini dilakukan dengan sangat sederhana.
import vk_api import requests session = requests.Session() login, password = ' , email ', ' ' vk_session = vk_api.VkApi(login, password) try: vk_session.auth(token_only=True) except vk_api.AuthError as error_msg: print(error_msg) return
Catatan, orang-orang dari VK merekomendasikan menggunakan nomor telepon sebagai login. jika tidak, Anda dapat mengalami pemeriksaan anti-bot, pemeriksaan di mana Anda diminta memasukkan nomor yang hilang dari nomor telepon.
Jika bot akan duduk dalam grup, maka otorisasi terlihat berbeda.
import requests import vk_api vk_session = vk_api.VkApi(token=' ')
- Apa itu token?
- Hal seperti itu dari tsiferok dan surat yang perlu Anda dapatkan dalam pengaturan grup. Untuk melakukan ini, cukup buka bagian "Manajemen Komunitas" ("Kelola halaman" jika Anda memiliki halaman publik), pilih tab "Work with API" dan klik "Buat Kunci Akses".
Sekarang panggil longpool.
from vk_api.longpoll import VkLongPoll, VkEventType longpoll = VkLongPoll(vk_session) vk = vk_session.get_api() for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text:
Pesan mungkin tidak hanya berisi teks yang Anda tentukan. Sebagai contoh:
import datetime vk.messages.send( user_id=event.user_id, message=' : ' + str(now.strftime("%H:%M")) )
Anda juga dapat melampirkan gambar.
attachments = [] from vk_api import VkUpload upload = VkUpload(vk_session) image_url = ' ' image = session.get(image_url, stream=True) photo = upload.photo_messages(photos=image.raw)[0] attachments.append( 'photo{}_{}'.format(photo['owner_id'], photo['id']) ) vk.messages.send( user_id=event.user_id, attachment=','.join(attachments), message=' ' )
Anda dapat membuat banyak hal menarik, tetapi pikirkan sendiri, dan saya hanya akan mengatakan: tautan dapat dibagi menjadi beberapa bagian. Sebagai contoh:
image_url = 'http://.com/uploads/' + event.text + '.png'
dan tidak ada yang melarang kami untuk menerima respons dari pengguna pada contoh Wikipedia:
import wikipedia
Tautan ke contoh dan dokumentasi
Contoh bot bekerja pada api DuckDuckGoVK api use case (umum)Dokumentasi VK api
Satu ,
DuaTentang ini saya akan mengucapkan selamat tinggal kepada Anda. Pengodean yang bagus.