使用javascript处理来自内联键盘(电报机器人)的回调



我正在将此电报机器人创建为谷歌应用程序(在电子表格中(,因此我不能将任何软件包用于 nodej,如电报或电信机器人。

我需要做的是,对于按下的每个内联按钮,机器人将执行特定操作。这是在消息下显示键盘的代码

bot.replyToSender("Quello inserito non è un codice utente valido. Il codice utente deve essere un numero!",JSON.stringify({
"inline_keyboard": [
[{ "text": "BUTTON_1", url: "SOME_RANDOM_URL_HERE"}], //This button does work, it sends me to the specific url
[{ "text": "BUTTON_2", "callback_data" :"B"}]
]
}));

当我想对BUTTON_2做某事时,问题从这里开始(例如更改生成该回调的消息或只是回复用户(。

我只是无法从电报的 API 页面获得任何东西......你可以帮我吗?

我创建了一个类似的机器人,它与谷歌电子表格一起使用,并在采取行动后更新电子表格,您可以查看它。我没有在电子表格中使用谷歌应用。在我看来,这种方法会困难得多,因为您无法利用大多数可用的库来为您完成大部分艰苦的工作。

要回答这个问题,您需要使用文档中answercallbackquery提供的方法。我不知道使用谷歌应用程序会是什么样子,但它应该看起来像这样

if (query.data === "B") {  // query is an object from the response you get when the user clicks the inline button
bot.answercallbackquery(query.id, {
text: `You successfully clicked the button`
});
}

这对您来说可能不是完全相同的实现,但answerInlineQuery的字段是相同的。

你可以在这里查看我是如何实现它的

这可能有点令人困惑,因为我使用了使用 MVC 的电报节点机器人,因此在使用answercallbackquery方法之前,需要在索引.js文件中设置内联查询。

但是它工作得很好。请随时提出进一步的问题。

干杯(

最新更新