Yandexクラウドを使用したサーバーレステレグラムボット

こんにちは!私の名前はViktorPavlovです。私は、ロシアのある大学でコンピューターサイエンスの研修生の教師をしています。そのため、学生の場合、教育プロセスに最新のテクノロジーを導入しようとしています。「サーバーレス」ボットはそのような分野の1つです。



この記事は、学生プログラマーの間でのリソースの人気に触発されていますが、非常に初心者のプログラマーには、できるだけ簡単にすべてを伝えようと思います。その結果、さまざまな変更のテンプレートとして単純なEchoボットを作成します。



PSまた、この記事はPythonにチュートリアルがないことに触発されており、Nodejsに関する優れたチュートリアルがあります。



Yandex CloudFunctions

ドキュメントへのリンクTelegramAPIドキュメントへのリンク






ステップ1Yandexクラウドプラットフォームへの登録とログイン



注意
. , Serverless VPS. «» .



ステップ2:関数を入力します。ここでは、「管理コンソール」の左側のパネルで「クラウド機能」を選択する必要があります



画像



ステップ3:ボタンをクリックします画像次に、意味のある関数名と説明を設定します。



助言
< >-<>-<>.



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



. language=python3.7, lib=telebot



ステップ4:[エディター]タブを選択します。



画像



その後、関数のコードを管理するためのウィンドウを開きます。ここで選択できます:



1)「ランタイム」。この場合はpython3.7です。



依存関係について
preview , ( 02.10.2020 )



2)「方法」は、コードが関数に渡される方法に責任があります。この記事では、最も簡単な例として簡単なコードエディターを使用します。



3)「エントリポイント」は、どの関数が要求を受け入れ、関数のアクションの開始になるかを答えます。少し後でそれを示します。



4)次は「パラメータ」です。そのままにしておくことをお勧めします。



権限を使用する場合
, , .



ステップ5:正しい「ランタイム」と「メソッド」が設定されていることを確認してから、「



画像



ファイルの作成」をクリックして、main.pyという名前を付けましょう。



ステップ6:これにより、リクエストハンドラー関数を作成できるコードエディターが開きます。それをハンドラーと呼び、次のコードを挿入しましょう。



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
    }


コードを解析する
«json», body json- python dict.



handler , , . .



body Python json.loads body .



, webhook telegram , body, json.dumps, .



注意!!!



「エントリポイント」で、この関数をスクリプトの先頭として指定する必要があります。main.handlerと記述します次のようになります。



画像



次に、[バージョンの作成]をクリックし、[概要]タブに移動するまで待ちます。



ステップ7:ここでは、「呼び出しへのリンク」とスイッチ「パブリック関数」に関心があります。スイッチを押すと、通話のリンクがどこにあるかを覚えています



画像



ステップ8テレグラムボットを作成し、そのトークンをコピーします。次のようなクエリを作成する必要があります。



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


ここで、bot_tokenはテレグラムボットトークンであり、webhook_urlは関数からの「呼び出しリンク」です(ステップ7)。このリクエストを収集して、ブラウザの行に挿入する必要があります。



リクエスト例
https://api.telegram.org/bot1234567:AAAAAAAAAAAAAAA/setWebHook?url=https://functions.yandexcloud.net/asdjaskjdasdjasd




ステップ9:ボットに「こんにちは」を送信し、最終的に何が得られたかを確認します。



画像



清聴ありがとうございました!この記事を読んだら、この記事を改善/補足/コメントするためのさまざまな提案に満足しています。



All Articles