Maintenant, les bots sont devenus monnaie courante et sont à chaque étape, mais si vous avez besoin de votre bot sur le réseau social VKontakte, cela est facile à mettre en œuvre.
Nous aurons besoin de:
- Python
- VK Api
- Désir
Eh bien, juste pour les débutants
Comment installer Python?Téléchargez , exécutez le programme d'installation.
Où écrire ce code?Vers un document texte avec l'extension .py
Et quoi écrire?Oui, même avec un ordinateur portable. Personnellement, je recommande
Notepad ++ Et comment courir?Via la ligne de commande.
python \.py
Comment ça marche?
Tout est très simple, dans vk api il y a une telle chose, appelée
longpool ça fonctionne comme ceci:
L'interrogation longue est une technologie qui vous permet de recevoir des données sur de nouveaux événements à l'aide de «requêtes longues». Le serveur reçoit la demande, mais ne lui envoie pas de réponse immédiatement, mais uniquement lorsqu'un événement se produit (par exemple, un nouveau message arrive) ou que le délai spécifié expire.
En russe, nous envoyons une demande au serveur et, à son tour, pousse VKontakte si quelque chose se passe là-bas, par exemple, nous recevons un message, il s'exécute et nous en parle. De là, nous danserons.
Implémentation technique
Premièrement, nous devons prouver en contact que nous sommes nous, et personne d'autre. Cela se fait très simplement.
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
Remarque, les gars de VK recommandent d'utiliser un numéro de téléphone comme identifiant. sinon, vous pouvez exécuter un contrôle anti-bot, celui où vous êtes invité à entrer les numéros manquants du numéro de téléphone.
Si le bot s'assoit en groupe, alors l'autorisation est différente.
import requests import vk_api vk_session = vk_api.VkApi(token=' ')
- Qu'est-ce qu'un jeton?
- Une telle chose de tsiferok et de lettres que vous devez obtenir dans les paramètres du groupe. Pour ce faire, il suffit d'ouvrir la section "Gestion de communauté" ("Gérer la page" si vous avez une page publique), sélectionnez l'onglet "Travailler avec l'API" et cliquez sur "Créer une clé d'accès".
Appelez maintenant 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:
Les messages peuvent non seulement contenir le texte que vous spécifiez. Par exemple:
import datetime vk.messages.send( user_id=event.user_id, message=' : ' + str(now.strftime("%H:%M")) )
Vous pouvez également joindre des photos.
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=' ' )
Vous pouvez trouver beaucoup de choses intéressantes, mais pensez-y vous-même, et je dirai simplement que: les liens peuvent être divisés en parties. Par exemple:
image_url = 'http://.com/uploads/' + event.text + '.png'
et personne ne nous a interdit de recevoir une réponse d'un utilisateur sur l'exemple de Wikipedia:
import wikipedia
Liens vers des exemples et de la documentation
Exemple de bot travaillant sur l'API DuckDuckGoCas d'utilisation de l'API VK (général)Documentation de l'API VK
One ,
TwoSur ce, je vais vous dire au revoir. Bon codage.