gpt4 book ai didi

javascript - Telegram 机器人内联键盘标记回调用于 channel 消息

转载 作者:太空宇宙 更新时间:2023-11-04 03:24:09 26 4
gpt4 key购买 nike

我的 Telegram 机器人需要将消息发送到 channel 并为每条消息提供内联键盘,如下所示:inline message keyboard

我需要对此键盘按钮单击事件使用react,但我找不到说明如何执行此操作的文档或示例。 Here in docs我只能看到这样的按钮可以打开 URL 或者切换聊天,但这不是我需要的功能。

目前我的消息发送代码如下所示(我使用 NodeJS Telegraf 框架):

const Telegraf = require('telegraf');
const { Markup, Telegram } = Telegraf;

const telegram = new Telegram(process.env.BOT_TOKEN);

const inlineMessageRatingKeyboard = [[
{ text: '👍', callback_data: 'like' },
{ text: '👎', callback_data: 'dislike' }
]];

telegram.sendMessage(
process.env.TELEGRAM_CHANNEL,
'test',
{ reply_markup: JSON.stringify({ inline_keyboard: inlineMessageRatingKeyboard }) }
)
);

所以,我需要知道如何让机器人对 channel 消息中的内联消息键盘交互使用react。

最佳答案

您可以使用事件 action() 或在 TelegrafContext 中使用 callbackQuery()answerCallbackQuery()
GitHubGist 上的上下文方法

工作开始了:

const Telegraf = require('telegraf')
const { Router, Markup } = Telegraf

const telegram = new Telegraf(process.env.BOT_TOKEN)

const inlineMessageRatingKeyboard = Markup.inlineKeyboard([
Markup.callbackButton('👍', 'like'),
Markup.callbackButton('👎', 'dislike')
]).extra()

telegram.on('message', (ctx) => ctx.telegram.sendMessage(
ctx.from.id,
'Like?',
inlineMessageRatingKeyboard)
)

telegram.action('like', (ctx) => ctx.editMessageText('🎉 Awesome! 🎉'))
telegram.action('dislike', (ctx) => ctx.editMessageText('okey'))

telegram.startPolling()

完整示例 here

关于javascript - Telegram 机器人内联键盘标记回调用于 channel 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46828965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com