用户在Telegram Bot API中单击后如何隐藏ReplyKeyboardMarkup

时间:2016-08-01 10:41:09

标签: javascript node.js telegram telegram-bot

我正在使用Node.js telegram-bot-api

点子:

  1. 使用一个按钮显示自定义键盘 - "分享我的电话号码"。
  2. 当用户点击此按钮时,应发送联系人并从屏幕上删除按钮。
  3. 这是我现在正在使用的代码:

    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正常工作(在使用后隐藏按钮),但即使在这种情况下它只是隐藏按钮,因此用户可以点击图标带来它回到了屏幕,这一点都不好。

    如果我在这里做错了,请告诉我。感谢

3 个答案:

答案 0 :(得分:12)

找到它。

这是一个解决方案:

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

答案 1 :(得分:1)

hide_keyboardAPI 2.3起已重命名为remove_keyboard

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

答案 2 :(得分:0)

您应该使用editMessageReplyMarkup并在收到客户端用户的点击后,使用空字符串(replyMarkup)更新该邮件的''

更新这适用于内联键盘。