2016-08-01 5 views
5

Node.js telegram-bot-apiを使用しています。Telegram Bot APIをクリックした後にReplyKeyboardMarkupを非表示にする方法

アイデア: - "私の電話番号を共有する"

  1. は1つのボタンでのカスタムキーボードを表示します。
  2. このボタンをクリックすると連絡先が送信され、画面からボタンを削除する必要があります。ここで

私が今使っているコードです:

bot.sendMessage({ 
    text: 'Please give us your phone number', 
    reply_markup: JSON.stringify({ 
     keyboard: [ 
      [{ 
       text: 'Share my phone number', 
       request_contact: true 
      }] 
     ], 
     resize_keyboard: true, 
     one_time_keyboard: true 
    }) 
}); 

問題:

  • ユーザが「私の電話番号を共有」ボタンをクリックすると、それは彼の連絡先を共有するが、ボタンが表示されていますその後も。
  • request_contactフラグを使用していないときは、one_time_keyboardが正しく機能します(使用後にボタンが非表示になります)。その場合でもボタンを非表示にするため、アイコンをクリックして画面に戻します良いです。

私はここで何か間違っていると教えてください。ありがとう

答えて

9

見つけました。ここで

がソリューションです:

ここ
bot.sendMessage({ 
    chat_id: message.chat.id, 
    text: 'Some text...', 
    reply_markup: JSON.stringify({ 
     hide_keyboard: true 
    }) 
}); 
0

あなたはeditMessageReplyMarkupを使用して、クライアントユーザーのクリックが受信された後にそのメッセージのreplyMarkupをヌル文字列('')で更新する必要があります。

更新これはインラインキーボードに適用されます。

+0

は、私は今取得していますものです: '{[OK]:偽、ERROR_CODE:400、説明:「tを編集することが: '不正な要求メッセージは\に' を} ' – Nazar

+0

あなたもメッセージIDを提供するべきです。あなたが送信し、キーボードマークアップを含む最後のメッセージID –

関連する問題