问题标签 [node-telegram-bot-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1842 浏览

telegram - 如何让 Telegram Bot 搜索频道中发布的文档?

我刚开始使用电报机器人,我想知道是否有办法让机器人搜索频道中发布的文件(如果用户要求,也可能下载它们)。

例如,如果 BOT 有一个命令“/search”,并且用户使用某些关键字搜索文件,那么 BOT 应该回答请求的文件,如果在频道上找到,它还应该提供一个内部链接来下载它.

我注意到 API 提供了一个可能在这种情况下有用的 getFile 方法,我只是想知道这是否可以实现!

希望我已经说清楚了!

0 投票
3 回答
439 浏览

mysql - Node.js - 插入添加 0 而不是字符串

我正在尝试使用 node.js 插入一些数据。我通过 npm 安装了 MySQL 支持,但似乎仍然无法使用 INSERT INTO 输入正确的字符串。(数据库中的行类型是 tinytext,字符串小于 255 个字符。)

这是我的代码 https://hastebin.com/komikahatu.http

预期的输出是它插入参数(/name 捕获的内容)和执行命令的用户的用户名(/name)。

0 投票
1 回答
861 浏览

node.js - 如何通过 Node.js 的电报数据库库(TDLib)请求用户的所有聊天/组

来自电报的官方例子解释说,为了使用getChats()命令,需要设置两个参数' offset_order'和' offset_chat_id'。我正在为 TDLib 使用这个 node.js 包装器。所以当我使用getChats()以下参数时:

就像官方文档中解释的那样:

例如,要从头开始获取聊天列表,offset_order 应该等于 2^63 - 1

结果,我从用户列表的顶部获得了 100 个聊天。

我无法理解的是如何遍历该列表?如何使用 API 分页?

当我尝试从前 100 个中间输入合法的 chat_id 时,我仍然得到相同的前 100 个,所以看起来没有区别。

如果我将该 offset_order 更改为任何其他数字,我会得到一个空的聊天列表作为回报......

在这里完全迷失了,因为我发现的每个 示例都与官方文档说的相同,即如何获得前 100 个

0 投票
1 回答
1036 浏览

node.js - 电报机器人 EditMessageReplayMarkup 错误(Nodejs)

当我按下另一个按钮时,我想更改我的 InlineKeyboard 按钮,但我不断收到此错误。

我的代码:

0 投票
1 回答
4040 浏览

javascript - 未处理的拒绝错误:ETELEGRAM:400 错误请求:消息文本为空

我是电报机器人和节点 js 的新手,我正在开发一个简单的机器人,它调用 api urls 来获取 json 对象,但是我有一个命令错误。这是命令的代码:

这是完整的错误:

0 投票
2 回答
991 浏览

telegram - 在 webhook 中,has_custom_certificate: false 是什么?

我有一个 teegram 机器人有问题,因为多次发送相同的消息。也许是因为 bot 没有说电报第一个操作是正确的。真是慢等电报再发消息。

我试图理解原因,但什么都没有......

现在我注意到对于getWebhookInfo我有:

也许这就是问题所在?

0 投票
1 回答
329 浏览

javascript - 更新电报机器人中的菜单

我有一个机器人,他只向用户显示一个菜单。使用 node-telegram-bot-api 编写。我已经更新了菜单中的链接,我想将所有用户更新到新菜单,而无需再次单击“开始”。

我尝试重置机器人并删除机器人数据,但它没有再次发送菜单。

0 投票
0 回答
49 浏览

javascript - 当我在回调函数中时,有人可以解释我如何访问变量值吗?

我有这个函数,只要用户向机器人键入“/play”或“/register”,它就会被调用,它用于查询数据库,如果用户已经在数据库中存储了他的数据。

我试图让这个函数返回真或假,但它不能正常工作..它总是返回假。

希望有人能解释一下为什么,提前谢谢![我为我糟糕的英语道歉]

我尝试将“let res = false”设置为全局变量,并在回调函数中更改其值(这有效,但仅在第一次执行该方法时[不知道为什么,如果有人可以向我解释这个])。

我试图在“isRegistered”函数中初始化变量(如您在下面的代码中所见),但在回调函数中似乎无法访问该变量。

我期待回调函数改变“res”变量的值。

我尝试了下面的代码,这是使它工作的唯一方法。我不明白为什么......我很绝望

0 投票
1 回答
10046 浏览

telegram-bot - 电报机器人 sendMessage 问题。Parse_mode='HTML' 不工作

我想使用 parse_mode 'HTML' 从 Telegram Bot 向用户发送消息。我将 node.js 与 telegram.bot.api 一起使用。但我有一个错误

我尝试编写没有 parse_mode='HTML' 的代码。它正在工作。但如果我只添加 parse_mode=''(html or markdown) node.js 告诉我:“错误:[polling_error] {}”

错误代码:

工作代码

我找不到有关 parse_mode='HTML' 和“错误:[polling_error] {}”的任何解决方案和信息。

0 投票
1 回答
242 浏览

node.js - 如何导出机器人实例并使用其方法?

我正在尝试使用 node-telegram-bot-API 设置一个机器人,我在 Foo.js 中创建了如下机器人实例

我希望机器人实例与 Bar.js 中的方法一起使用 -

但是,它会抛出一个错误说TypeError: bot.sendMessage is not a function