2016-08-01 116 views
5

我正在使用Node.js telegram-bot-api如何在用戶點擊Telegram Bot API後隱藏ReplyKeyboardMarkup

理念:

  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

UPDATE這適用於內聯鍵盤。

+0

這裏是我現在越來越: '{OK:假的,ERROR_CODE:400,說明: '錯誤的請求:消息可以\' 噸編輯」} ' – Nazar

+0

你也應該提供消息ID。您發送幷包含鍵盤標記的最後消息標識 –