最小のテレグラム用の非常にシンプルなチャットボット





電報用のシンプルなサーバーレスチャットボットを作成するための100,500の方法とツールがあります。 とにかく、少なくともインターフェイスでのクリック数によっては、とにかく簡単になります。 ボット自体はPythonで記述され、サーバーレスのSwiftyエンジンで実行されます。



ガイドにあるように、Pythonやその他のプログラミング言語の特別な知識は必要ありません。 必要なのは、コマンドラインで何かを実行できることだけです。 ロシアにいる場合、電報サーバーに到達する必要があるため、コンピューターにもVPNがあります。



すべてが標準ですが、ボットを登録します



新しいボットを作成するには、別のボットに依頼する必要があります。 テレグラムを開き、そこで@BotFatherボットを見つけるか、 リンクを開きます。 次に、/ newbotと入力し、BotPapaの指示に従います。 最小限の構成では、ボットに表示名とユーザー名を与えるだけで済みます。 ボットを作成すると、アクセストークンとURLが与えられます。 どこかに保存します。



ボット



まず、サーバーレスプラットフォームのSwiftyに登録する必要があります。 ここでできます 。 次に、コントロールパネルに移動して、次の操作を行います。



  1. [機能]-> [新しい機能]をクリックします。 リポジトリから(テンプレート)タブをクリックし、 github.com / swiftycloud / swifty.demoリポジトリがデフォルトで選択されていない場合は選択します。 これは、関数テンプレートを格納する独自のリポジトリです。
  2. Simple Telegram Chatbot(python)テンプレートを選択し、[次へ]をクリックします。
  3. ボットの名前、たとえばswifty_bot(以降、この名前を使用して指定します)を入力し、[作成]をクリックします。


電報がボット関数を呼び出すことができるように、APIリンクを作成する必要があります。 [トリガー]タブに移動し、[トリガーの追加]-> [REST API(URL)]をクリックします。 結果のリンクを保存します。



次に、ボット機能に、テレグラムから受け取ったアクセストークンへのアクセスを許可する必要があります。 Swiftyには特別なエンティティ(アカウント)があります。アカウントを使用すると、ログインパスワードバンドルやトークンなどのデータを安全に保存できます。



  1. [アカウント]-> [アカウントの作成]を選択します。 Telegram APIタイプ、名前SWIFTYBOT(大文字のみ)、およびTelegramから受け取ったトークンを使用します。
  2. 機能-> swifty_bot->アクセス->追加を選択します。 アカウントとSWIFTYBOTアカウントを選択します。 これで、関数はアクセストークンに安全にアクセスできます。


更新する 注意してください! アカウントの名前SWIFTYBOTは、次の機能コードに記述されています。



BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN'))
      
      





別のアカウント名を使用する場合は、機能コードで変更する必要があります。 たとえば、アカウント名がMYOWNBOTの場合、コードは次のようになります。



 BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMMYOWNBOT_TOKEN'))
      
      





環境変数ACC_TELEGRAMMYOWNBOT_TOKENの名前は、Swiftyの他のリソースと同様に、アカウントプロパティを受け取るためにどのように形成されますか? ここに:





結果の関数のコード:



 import json import os import sys import requests BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN')) def Main(req): try: data = json.loads(req.body.encode()) message = str(data["message"]["text"]) chat_id = data["message"]["chat"]["id"] first_name = data["message"]["chat"]["first_name"] response = "Please /start, {}".format(first_name) if "start" in message: response = "Hello {}! Type /help to get list of actions.".format(first_name) if "help" in message: response = "/about - get information about Swifty" if "about" in message: response = ("Swifty is the serverless platform that allows startups, developers and enterprises to develop and run application backend with minimal time-to-market, costs and without infrastructure management.\n" "Start creating your backend at\n" "https://swifty.cloud") data = {"text": response.encode("utf8"), "chat_id": chat_id} url = BASE_URL + "/sendMessage" requests.post(url, data) except Exception as e: print(e) return {"statusCode": 200}, None
      
      





これは、/ start、/ help、および/ aboutコマンドに応答できる最も単純なボットです。 任意のチームを追加して、必要に応じてその機能を拡張することもできます。



関数をボットに接続します



次に、ボットがどのリンクにあるかを電報に伝える必要があります。 コマンドプロンプトを開き、その中で次のコマンドを実行する必要があります。 同時に、YOUR_API_URLは以前にコピーしたAPIリンクに置き換え、YOUR_ACCESS_TOKENはトークンに置き換える必要があります。



 curl -XPOST https://api.telegram.org/botYOUR_ACCESS_TOKEN/setWebhook?url=YOUR_API_URL
      
      







すべてがうまくいった場合、次のようなものが表示されます。



 { "ok": true, "result": true, "description": "Webhook was set" }
      
      





ロシアにいる場合、VPNが有効になっている場合にのみ、すべてがうまくいきます。



確認できます



電報で自分の名前のボットを見つけて、/ startや/ aboutな​​どのコマンドをいくつか実行してみてください。 すべてがうまくいけば、おめでとうございます。 そうでない場合は、こちらまたはスラックチャンネルにコメントしてください



swifty_test_botという名前のボットの電報でこのようなボットの動作を確認できます。 ありがとう



swifty.cloudにあるように、アイデアをアプリに追加します。



All Articles