Bot de télégramme sans serveur utilisant le cloud Yandex

salut! Je m'appelle Viktor Pavlov et je suis stagiaire en informatique dans l'un des collèges de Russie. Donc, pour les étudiants, nous essayons d'introduire les dernières technologies dans le processus éducatif, et les bots «sans serveur» sont l'un de ces domaines.



Cet article s'inspire de la popularité de la ressource auprès des étudiants-programmeurs, mais j'essaierai de tout dire le plus simplement possible pour les programmeurs très novices. En conséquence, nous allons créer un simple bot Echo comme modèle pour diverses modifications.



PS Aussi, l'article est inspiré par l'absence de tutoriel en Python, il existe un bon tutoriel sur Nodejs .



Lien vers la

documentation de Yandex Cloud Functions Lien vers la documentation de l'API Telegram .






Étape 1 : Inscription et connexion à la plate- forme cloud Yandex



Remarque
. , Serverless VPS. «» .



Étape 2 : Entrez les fonctions. Ici, vous devez sélectionner "Fonctions Cloud" dans le panneau de gauche de la "Console de gestion"



image



Étape 3 : Cliquez sur le bouton image. Ensuite, nous définissons un nom et une description de fonction significatifs.



Conseil
< >-<>-<>.



telegram-study-bot, weather-get-api ..



. language=python3.7, lib=telebot



Étape 4 : Sélectionnez l'onglet "Editeur"



image



Après cela, nous ouvrirons une fenêtre pour gérer le code de notre fonction. Ici on peut choisir:



1) "Runtime", dans notre cas c'est python3.7



À propos des dépendances
preview , ( 02.10.2020 )



2) Les «moyens» sont responsables de la manière dont le code sera transmis à la fonction. Dans cet article, nous utiliserons l'éditeur de code simple comme exemple le plus simple.



3) Le "point d'entrée" répond à quelle fonction acceptera la requête et sera le début de l'action de notre fonction, nous l'indiquerons un peu plus tard.



4) Viennent ensuite les "Paramètres", je suggère de les laisser tels quels.



Si vous souhaitez utiliser les autorisations
, , .



Étape 5 : Assurez-vous que nous avons les bons "Runtime" et "Method".



image



Cliquez ensuite sur "Create file", nommons-le main.py.



Étape 6 : Cela ouvrira l'éditeur de code où nous pouvons créer une fonction de gestionnaire de requêtes. Appelons-le gestionnaire et insérons ce code:



import json

def handler(event, context):
    body = json.loads(event['body'])
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json'
        },
        'body': json.dumps({
            'method': 'sendMessage',
            'chat_id': body['message']['chat']['id'],
            'text':  body['message']['text']
        }),
        'isBase64Encoded': False
    }


Analyser le code
«json», body json- python dict.



handler , , . .



body Python json.loads body .



, webhook telegram , body, json.dumps, .



ATTENTION!!!



Dans le "Point d'entrée", vous devez spécifier cette fonction comme début du script. Nous écrivons main.handler . Cela devrait être comme ceci:



image



Ensuite, nous cliquons sur "Créer une version" et attendons d'être transférés dans l'onglet "Vue d'ensemble".



Étape 7 : Ici, nous nous intéressons aux commutateurs "Lien d'appel" et "Fonction publique". Nous appuyons sur l'interrupteur et nous nous souvenonsse trouve le lien pour l'appel.



image



Étape 8 : Créez un robot de télégramme et copiez son jeton. Vous devez créer une requête comme:



https://api.telegram.org/bot<bot_token>/setWebHook?url=<webhook_url>


Où bot_token est votre jeton de robot de télégramme, et webhook_url est le "lien d'appel" des fonctions (étape 7). Cette demande doit être collectée et insérée dans la ligne du navigateur.



Exemple de demande
https://api.telegram.org/bot1234567:AAAAAAAAAAAAAAA/setWebHook?url=https://functions.yandexcloud.net/asdjaskjdasdjasd




Étape 9 : Envoyez "bonjour" au bot et voyez ce que nous avons obtenu à la fin.



image



Merci de votre attention! Si vous avez lu cet article, je serai heureux de diverses suggestions pour améliorer / compléter / commenter cet article.



All Articles