Telegram bot: example json, inline_keyboard

前端 未结 2 567
野的像风
野的像风 2021-02-10 04:20

Example json for show inline_keyboard in telegram bot

https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating

enter image description here

<
相关标签:
2条回答
  • 2021-02-10 04:49

    I just had a hard time trying to get it to work on my API and I've found the problem. You need to JSON.stringify() the contents of reply_markup that converts the keyboard object and contents into a string first.

    Here's an example.

    bot.onCommand = function (chat, from, message_id, text, command, commandData) {
        if (command === "test") {
            var keyboard = {
                "inline_keyboard": [
                    [
                        {"text": "Yes", "url": "http://www.google.com/"},
                        {"text": "No", "url": "http://www.google.com/"}
                    ]
                ]
            };
    
            var data = {
                "reply_to_message_id": message_id,
                "reply_markup": JSON.stringify(keyboard)
            };
    
    
            bot.sendText(chat.id, "test", data, function (isSuccess) {
                console.log(isSuccess);
            });
    
            return;
        }
    }
    

    I wrote this to hopefully make it less confusing.

    The output will be:

    (test    )
    [Yes] [No]
    

    The circler brackets is the message and the square brackets is the buttons. Both in this example opens a link to Google.

    0 讨论(0)
  • 2021-02-10 04:52

    Well, I think I understood what you mean, jeissonp. It seems that you are using Node.js to write Telegram bots, and that's how you provide a user with an inline keyboard:

    Create a keyboard:

    const opts = {
    "reply_markup": {
                "inline_keyboard": [[
                    {
                        "text": "A",
                        "callback_data": "A1"            
                    }, 
                    {
                        "text": "B",
                        "callback_data": "C1"            
                    }]
                ]
            }
    }
    

    And then send a message with the opts:

    bot.sendMessage(chatID, "Message text", opts);
    

    Hope it helps!

    0 讨论(0)
提交回复
热议问题