当我按下另一个按钮时,我想改变我的InlineKeyboard按钮,但是我一直收到这个错误。
TypeError: Cannot create property 'reply_markup' on number '750548132'
2019-04-13T06:42:14.374318+00:00 app[web.1]: at TelegramBot.editMessageReplyMarkup (/app/node_modules/node-telegram-bot-api/src/telegram.js:1201:23)
2019-04-13T06:42:14.374320+00:00 app[web.1]: at TelegramBot.bot.on (/app/index.js:371:11)
2019-04-13T06:42:14.374321+00:00 app[web.1]: at TelegramBot.emit (/app/node_modules/eventemitter3/index.js:181:35)
2019-04-13T06:42:14.374323+00:00 app[web.1]: at TelegramBot.processUpdate (/app/node_modules/node-telegram-bot-api/src/telegram.js:657:12)
2019-04-13T06:42:14.374324+00:00 app[web.1]: at TelegramBotWebHook._parseBody (/app/node_modules/node-telegram-bot-api/src/telegramWebHook.js:121:21)我的守则:
const messageID = callbackQuery.message.chat.id;
const callBackData = callbackQuery.data;
if (callBackData.substring(0,7) == 'intent_') {
keyboard = {
reply_markup: {
inline_keyboard: [[
{
text: 'Menu 1',
callback_data: 'socialMediaConnect'
},{
text: 'Menu 2',
callback_data: 'music'
}
]]
}
}
bot.editMessageReplyMarkup(messageID, callbackQuery.message.from.id, callbackQuery.inline_message_id, keyboard)
}发布于 2019-05-20 16:57:11
问题是您需要将reply_markup包装在一个JSON.stringify()中,否则它就不能工作了。
以下是文档所说的话:

其他接口选项。一个JSON序列化对象,用于内联键盘、自定义回复键盘、删除回复键盘或强制用户回复的指令。
我更新了你的密码。
const messageID = callbackQuery.message.chat.id;
const callBackData = callbackQuery.data;
if (callBackData.substring(0,7) == 'intent_') {
keyboard = {
reply_markup: JSON.stringify({ // Added JSON.stringify()
inline_keyboard: [[
{
text: 'Menu 1',
callback_data: 'socialMediaConnect'
},{
text: 'Menu 2',
callback_data: 'music'
}
]]
})
}
bot.editMessageReplyMarkup(messageID, callbackQuery.message.from.id, callbackQuery.inline_message_id, keyboard)
}https://stackoverflow.com/questions/55662846
复制相似问题