可能性を確認するには、Pythonの10分の3ポイントとスプーンpyTelegramBotAPIをいくつかインストールする必要があります。 チャットボットのセットアップと登録の機能は考慮しません。 このトピックには多くの記事があります。
それで、Telegramメッセンジャーの組み込みボタン(キーボード)とは正確には何ですか? これらは、チャットの内部領域に表示されるボタンで、特定のメッセージに添付されます。 これらはメッセージと密接に関連しています(メッセージを削除すると、内部ボタンも一緒に削除されます)。 動的に変更することができます。
現在、組み込みボタンには3つのタイプがあります。
URLボタン
![](https://habrastorage.org/web/632/7cb/2bb/6327cb2bbd5944c5817fb643bd40c92e.png)
ボタンを作成するには、 InlineKeyboardMarkupタイプを使用します。「Our site」ボタンを作成しましょう。
@bot.message_handler(commands = ['url']) def url(message): markup = types.InlineKeyboardMarkup() btn_my_site= types.InlineKeyboardButton(text=' ', url='https://habrahabr.ru') markup.add(btn_my_site) bot.send_message(message.chat.id, " .", reply_markup = markup)
ここで、名前はそれ自体を表しています。このタイプのボタンは、適切な警告とともにユーザーをリンクにリダイレクトするように設計されています。 ボタンの右上隅に対応するラベルがあり、これがリンクであることをユーザーに明確にします。
スイッチボタン
このタイプのボタンは、ユーザーをチャットにリダイレクトするように設計されており、その後、ボットとの通信の(組み込み)インラインモードがアクティブ化されます。 このモードは手動で有効にできます。チャットで「@ bot name」と入力しますが、スイッチボタンを使用すると、これを自動的に行うことができます(初心者がインラインモードに慣れるのに役立ちます)。
このようなスイッチを作成するには、 switch_inline_query引数を空またはテキストで指定する必要があります。
@bot.message_handler(commands = ['switch']) def switch(message): markup = types.InlineKeyboardMarkup() switch_button = types.InlineKeyboardButton(text='Try', switch_inline_query="Telegram") markup.add(switch_button) bot.send_message(message.chat.id, " ", reply_markup = markup)
ここで、ボタンをクリックしてチャットを選択すると、次のようになります。
ステップ1:
![](https://habrastorage.org/web/07d/7a8/ac7/07d7a8ac7488453394d5f197e6346ac0.png)
ボタンをクリックします。
ステップ2 :
![](https://habrastorage.org/web/8f4/561/2db/8f45612dbde9455ab756207783c761ba.png)
チャットを選択します。
ステップ3:
![](https://habrastorage.org/web/5b7/6c0/85b/5b76c085b7754da4a71e2caf3b97c801.png)
組み込みのインラインモードがアクティブ化されました。
コールバックボタン
最後に、最も興味深いのはフィードバックボタンです。これらのボタンを使用すると、メッセージ/組み込みボタンを動的に更新し(同時にフィードを詰まらせることなく)、チャットボットまたはモーダルウィンドウの上部に通知を表示できます。
たとえば、サイト上のページのページネーションに似た長いメッセージを表示したり、カレンダーを作成したりするために使用できます。 車輪を再発明するつもりはありませんが、GitHubで検索すると、既製のカレンダーテレグラムライブラリが見つかります。 これらの指示に従って、適切なボタンをクリックして動的に変更できる完成したカレンダーを取得します。
![](https://habrastorage.org/web/2f1/bcd/a1f/2f1bcda1fc174eeeb579f95497f90bee.png)
@bot.message_handler(commands=['calendar']) def get_calendar(message): now = datetime.datetime.now() # chat_id = message.chat.id date = (now.year,now.month) current_shown_dates[chat_id] = date # markup = create_calendar(now.year,now.month) bot.send_message(message.chat.id, ", ", reply_markup=markup)
日付をクリックして通知を追加することもできます。このため、応答でメッセージを示すだけで十分です。
bot.answer_callback_query(call.id, text=" ")
![](https://habrastorage.org/web/dbc/19a/929/dbc19a9294a74193a52bbc7ca6b77c97.png)
(デスクトップ版の例)
![](https://habrastorage.org/web/901/7c9/903/9017c99031d244928503aea603362792.png)
(モバイル版の例)
show_alertをTrueに変更すると、モーダルウィンドウが表示されます。
bot.answer_callback_query(call.id, show_alert=True, text=" ")
![](https://habrastorage.org/web/8d6/c5f/b13/8d6c5fb13efb4398b260cc3c6bccdd3a.png)
おわりに
最新のデータによると、絶賛されているTelegramメッセンジャーには毎日60万人以上のユーザーが登録されています。 だからこそ、トレンドを取り上げてその主な機能に対処することが重要です。 ボットと対話するさまざまな方法により、開発者とユーザーの生活が大幅に簡素化されます。
![](https://habrastorage.org/web/b23/455/1f0/b234551f06c54dea8081a7222c09a513.png)
このトピックに関心をお寄せいただきありがとうございます。