ボットは興味深いだけでなく、便利でもあります。それらに取り組んでいくと、あらゆる関数を自動化するためのシンプルだが機能するプロジェクトを取得でき、その過程でラムダ、Git、および Heroku についても理解できるようになります。私がボットを作成したとき、単純なエコー ボットよりも少しでも複雑なものを作成する方法についての説明は見つかりませんでした。もっと合理的なものが欲しかったです。たとえば、実際の対話を行うことができ、選択した答えに応じて展開が変化するチャネルです。2 週間かかった私のプロジェクトについてお話します。最終段階で大きな困難に直面したため、Heraku でのデプロイメントには特に注意を払います。
登録
開始するには、ボットを登録し、名前とトークンを受け取る必要があります。これは後で必要になります。幸いなことに、これは難しいことではありません。Telegram を開いて @BotFather を見つけ、「/start」と入力するだけです。応答として、コマンドのリストを受け取ります - /newbot が必要です。名前を考えてから、-bot で終わるユーザー名を考えます (例: Consequences1Bot)。ユーザー名はオリジナルである必要があるため、ここでは想像力を働かせる必要があります。応答として、BotFather はトークンを送信します。トークンはすぐに保存するのが最適です。始める
開始するには、Maven プロジェクト、Java 8、および Intelliji Idea Ultimate が必要です。挿入pom.xml
:右上隅に表示される「Maven の変更をロード」ボタンをクリックすることを忘れないでください。また、Java 8 以降を使用していることを確認してください。これは、[ファイル] --> [プロジェクト設定] --> [プロジェクト] にあります。フォルダー内にsrc.main.java
、ボットの名前のサブフォルダーを作成します。ここでは、それが package ですexample.TelegramBot
。TelegramBot
まず、を継承するクラスを作成しますAbilityBot
。Idea に赤の下線が引かれている場合 (実際に引かれている場合)、[クラスのインポート] をクリックします。SkillBot には、実装する必要があるメソッドが 1 つありますcreatorId()
。
@Override
public int creatorId() {
return Constants.CREATOR_ID;
}
また、2 つのコンストラクターを作成する必要もあります。1 つは引数なしで、2 つ目はスーパークラス コンストラクターを呼び出します。
public TelegramBot() {
this(Constants.BOT_TOKEN, Constants.BOT_USERNAME);
}
private TelegramBot(String botToken, String botUsername) {
super(botToken, botUsername);
}
Constans
自然に赤になります - このインターフェースを作成する必要があります。文字列と ID 番号が保存されます。もちろん、わざわざメイン文書にすべてを残す必要はありませんが、この方がはるかに明確になります。それでは、インターフェイスを作成しましょうConstans
。最初の変数はString BOT_TOKEN
(BotFather が送信したトークン)String BOT_USERNAME
とになりますint CREATOR_ID
。作成者 ID はセキュリティを強化するために必要です。これは少し後で見つけることができます。
打ち上げ
ボットの初期化に必要なコードを含むApplication
メソッドを含むクラスを作成します。main()
public class Application {
public static void main(String[] args) {
// Initializes dependencies necessary for the base bot
ApiContextInitializer.init();
// Create the TelegramBotsApi object to register your bots
TelegramBotsApi botsApi = new TelegramBotsApi();
try {
// Register your newly created AbilityBot
FitnessBot bot = new FitnessBot();
botsApi.registerBot(bot);
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
}
これで、メイン メソッドからボットを起動できるようになりますが、アクションは実行されません。沈黙だけがあなたの答えになります。次のパートでは、これを変更する方法について説明します。 パート2
GO TO FULL VERSION