テレグラムボットのshowinline_keyboardのjsonの例
https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating
{
"chat_id": "123456",
"text": "Hi",
"reply_markup": {
"inline_keyboard": [[
{
"text": "A",
"callback_data": "A1"
},
{
"text": "B",
"callback_data": "C1"
}]
]
}
}
APIで動作させるのに苦労しましたが、問題が見つかりました。 JSON.stringify()キーボードオブジェクトとコンテンツを最初に文字列に変換するreply_markupのコンテンツを実行する必要があります。
これが例です。
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;
}
}
混乱を少なくするためにこれを書きました。
出力は次のようになります。
(test )
[Yes] [No]
丸括弧はメッセージであり、角括弧はボタンです。この例の両方で、Googleへのリンクが開きます。
さて、私はあなたが何を意味するのか理解したと思います、jeissonp。 Node.jsを使用してTelegramボットを作成しているようです。これが、ユーザーにインラインキーボードを提供する方法です。
キーボードを作成します。
const opts = {
"reply_markup": {
"inline_keyboard": [[
{
"text": "A",
"callback_data": "A1"
},
{
"text": "B",
"callback_data": "C1"
}]
]
}
}
そして、optsでメッセージを送信します。
bot.sendMessage(chatID, "Message text", opts);
それが役に立てば幸い!