首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加可点击按钮到电报机器人

添加可点击按钮到电报机器人
EN

Stack Overflow用户
提问于 2017-03-14 20:59:46
回答 2查看 42.5K关注 0票数 9

我正在用node.js电报机器人开发一个简单的电报机器人。https://github.com/yagop/node-telegram-bot-api现在我希望用户停止输入消息(带字母),只需按几个按钮中的一个。当他点击按钮时,他的电报客户端必须向我的机器人发回另一条消息(类似于“点击是”或“点击否”之类的信息)。我发现它可以用

代码语言:javascript
复制
var options = {
      reply_markup: JSON.stringify({
        inline_keyboard: [
          [{ text: 'Some button text 1', callback_data: '1' }],
          [{ text: 'Some button text 2', callback_data: '2' }],
          [{ text: 'Some button text 3', callback_data: '3' }]
        ]
      })
    };
bot.sendMessage(msg.chat.id, "answer.", option);

因此,用户收到3种类型的消息,当他点击它们时,他没有给我发回任何东西。我需要另一种类型的按钮(这将在客户的应用程序的底部)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-14 21:39:50

您需要监听callback_query ..如下所示:

代码语言:javascript
复制
bot.on('callback_query', function onCallbackQuery(callbackQuery) {
  const action = callbackQuery.data;
  const msg = callbackQuery.message;
  const opts = {
    chat_id: msg.chat.id,
    message_id: msg.message_id,
  };
  let text;

  if (action === '1') {
    text = 'You hit button 1';
  }

  bot.editMessageText(text, opts);
});

更多信息可以在库中找到。:https://github.com/yagop/node-telegram-bot-api/blob/0174b875ff69f6750fc80a049315c9a0d7a5e471/examples/polling.js#L78

一些进一步的阅读表明:https://core.telegram.org/bots/api#callbackquery

TelegramBot在收到回调查询时发出callback_query

这与此处的文档相关:https://core.telegram.org/bots/api#callbackquery

如果按钮被附加到通过机器人发送的消息(在内联模式下),则会出现字段inline_message_id

将出现字段datagame_short_name中的恰好一个。

票数 7
EN

Stack Overflow用户

发布于 2017-03-15 07:38:18

您使用的是内联键盘,而不是您所说的出现在电报屏幕底部的回复键盘标记。

它很容易实现,你可以找到关于它的一些有用的信息,herehere

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42786711

复制
相关文章

相似问题

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