【问题标题】:inline keyboard click doesnt call callback_query why?内联键盘单击不调用 callback_query 为什么?
【发布时间】:2017-08-16 04:12:47
【问题描述】:
bot.onText(/(.+)$/, function (msg, match) {
    const opts = {
    reply_markup: {
      inline_keyboard: [
        [
          {
            text: 'Edit Text',
            callback_data: 'edit'
          }
        ]
      ]
    }
  };
  bot.sendMessage(msg.from.id, 'Original Text', opts);
});

bot.on("callback_query", function(callbackQuery) {
    // 'callbackQuery' is of type CallbackQuery
    console.log(callbackQuery);
});

我一直在寻找这个问题的答案,尝试了 call_back 上的所有可用资源。如 Telegram bot inline keyboard via Node.JS Telegram inline keyboard and keyboard How can create menu for telegram bot in bot father?

【问题讨论】:

  • 您的代码看起来不错,在我的沙箱中运行良好。
  • 嘿@stdob——有什么特别的提升吗?是否需要部署机器人来测试查询?
  • 没什么特别的:提供令牌,然后开始...
  • 能否提供完整的设置方法?因为我不确定我是不是走错了地方。

标签: javascript telegram-bot


【解决方案1】:

这样试试怎么样?

bot.on('callback_query', function onCallbackQuery(callbackQuery) {
        const action = callbackQuery.data;
        const msg = callbackQuery.message;
        // do your stuff
        if (action === 'adress') {
        // do something if callback data is "adress", you can have multiple if statements for various cases
        }
});

我就是这么弄的,希望对你有帮助!

【讨论】:

  • 不,它不起作用。在 BotFather 中是否需要进行任何特殊设置?
  • @Smit 听到这个消息我很难过。我很确定在 BotFather 中绝对不需要进行任何设置。您是否尝试过从this page in the docs? 运行示例并且您确定您的轮询/webHook 设置没有问题?也可能是这样:据我所知,这些东西负责处理机器人收到的任何反馈。
  • @Smit 同样在原始问题的评论部分(遗憾的是,我现在无法评论)您询问是否需要将机器人部署到服务器。答案是否定的,它不是必需的。您完全可以处理在您的机器上运行机器人的回调查询。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-26
  • 2016-08-31
  • 2013-08-03
  • 2017-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多