首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电报机EditMessageReplayMarkup错误(Nodejs)

电报机EditMessageReplayMarkup错误(Nodejs)
EN

Stack Overflow用户
提问于 2019-04-13 06:48:35
回答 1查看 1.3K关注 0票数 0

当我按下另一个按钮时,我想改变我的InlineKeyboard按钮,但是我一直收到这个错误。

代码语言:javascript
复制
    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)

我的守则:

代码语言:javascript
复制
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)    
}
EN

回答 1

Stack Overflow用户

发布于 2019-05-20 16:57:11

问题是您需要将reply_markup包装在一个JSON.stringify()中,否则它就不能工作了。

以下是文档所说的话:

其他接口选项。一个JSON序列化对象,用于内联键盘、自定义回复键盘、删除回复键盘或强制用户回复的指令。

我更新了你的密码。

代码语言:javascript
复制
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)    
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55662846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档