2017-01-03 5 views
-2

カスタムキーボードを使用して、選択したオプションを取得します。電報ボットのキーボード入力からの応答を得るには?

選択したオプションを取得するにはどうすればよいですか?例はありますか?

私の質問はここでは、 "ノード・電報・ボット-API" により

に答えている:How to get the response of the keyboard selection?

は、C#のための任意の解決策はありますか?

+0

Telegram Bot APIにアクセスするライブラリはどれですか? –

+0

私はtelegram.botを使用しています –

答えて

0

SendTextMessageAsyncを呼び出すと、「カスタム返信キーボード」を指定するIReplyMarkupオブジェクトが渡されます。私はTelegram Bot APIについてはあまりよく分かりませんが、これはあなたがリンクしたGitHubの問題によって参照されるものと同じように見えます。

several implementations listed in the API documentationと思われます。私はどちらかInlineKeyboardMarkupまたはReplyKeyboardMarkupあなたが探していると思われる。

+0

私はReplyKeyboardMarkupを探しています –

0

カスタムキーボードを作成するには、テキストメッセージを送信してIReplyMarkupを渡す必要があります。選択されたオプションは、OnMessageイベントで処理できるメッセージとして送信されます。返信マークとしてReplyKeyboardHideを設定すると、カスタムキーボードを非表示にすることができます。ここで

は一例です。ここで

private const string FirstOptionText = "First option"; 
private const string SecondOptionText = "Second option"; 

private async void BotClientOnMessage(object sender, MessageEventArgs e) 
{ 
    switch (e.Message.Text) 
    { 
     case FirstOptionText: 
      await BotClient.SendTextMessageAsync(e.Message.Chat.Id, "You chose the first option", replyMarkup:new ReplyKeyboardHide()); 
      break; 
     case SecondOptionText: 
      await BotClient.SendTextMessageAsync(e.Message.Chat.Id, "You chose the second option", replyMarkup:new ReplyKeyboardHide()); 
      break; 

     default: 
      await BotClient.SendTextMessageAsync(e.Message.Chat.Id, "Hi, select an option!", 
       replyMarkup: new ReplyKeyboardMarkup(new[] 
       { 
        new KeyboardButton(FirstOptionText), 
        new KeyboardButton(SecondOptionText), 
       })); 
      break; 
    } 
} 

は、カスタムキーボードとのチャットです。ここ
enter image description here

は、私が最初のボタンをクリックしたチャットです:
enter image description here

私はこれが助けて欲しい!

関連する問題