问题标签 [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 投票
2 回答
201 浏览

javascript - 如果用户同时发送多张照片,如何让机器人响应一次?

我正在 nodejs 中开发一个 Telegram 机器人。我创建了一个 node-telegram-bot-api 实例,并使用 on('photo') 方法来管理用户是否向我的机器人发送照片。

问题是当用户通过从图库中多选照片来发送多张照片时,因为我的机器人响应的次数与发送的照片一样多。我认为这是因为机器人执行 on('photo') 方法的次数与发送的照片一样多。

我希望机器人只响应一次。

你有什么建议吗?

0 投票
3 回答
207 浏览

javascript - 为什么未定义对象的新实例?

我无法使用 nodejs 在另一个 java 脚本文件中使用相同的对象实例。

我正在开发一个用于电报的机器人。因为文件变得大而混乱,我想将我的机器人的功能拆分成几个额外的 js 文件。但我不知道如何在多个 javascript 文件之间共享同一个对象实例。

0 投票
0 回答
1725 浏览

node.js - 更新 Telegram 机器人中的消息

我正在熟悉 Telegram API,想知道是否有可能在用户点击后更新来自机器人的消息的按钮标题?

这是我的代码示例:

如何正确使用InlineKeyboardMarkup

我收到一个reply_markup未正确定义的错误。我知道我必须InlineKeyboardMarkup从某个地方进口,但无法从哪里找到。

有经验的人可以告诉我点击后如何更新按钮标题吗?

0 投票
1 回答
183 浏览

node.js - 电报机器人响应太晚

我创建了简单的电报机器人来过滤坏词,当我在本地运行时它工作得很好,但是在我部署到 Heroku 服务后响应太晚了。

完整代码

0 投票
1 回答
591 浏览

telegram - 如何从 Telegram 频道获取一些消息、更改某些内容并转发?

我想从 Telegram 频道(不是我的)获取一些消息,更改一些内容(不是过滤,但例如修改一些单词)并将更改的消息转发到其他频道(我的或不是我的)。我希望看到一些结构化代码开始(最好是 NodeJS)

我尝试下载 TForwarder,但它只能过滤消息,不能更改。

0 投票
1 回答
1922 浏览

javascript - 电报框架。如何使用 telegram.forwardMessage(); 将消息转发到给定的组、聊天或频道?

问题:我需要将大约 400 个用户的消息发送到电报机器人。bot 听到消息中的特定标签,并将消息路由到由 bot 听到的标签定义的组频道或用户。当最终目的地回复时,机器人需要知道将该回复转发到哪里以实现双向通信(一种方式是用户在群聊中与整个部门通信,另一种方式是来自只回复用户的部门)

所以在这样的背景下,我决定使用 Telegraf 框架来构建机器人。我是 JS 和所有相关技术的新手,但它似乎是这项任务的最佳选择。我正在尝试使用 telegram.forwardMessage(); 方法,但我不确定如何填充该方法所需的参数。

电报文件显示

telegram.forwardMessage(chatId, fromChatId, messageId, [extra]) => Promise

但找不到任何实际使用该方法的例子

0 投票
1 回答
2240 浏览

node.js - 节点给出错误“internal/modules/cjs/loader.js:638” - Telegraf - Telegram bot api - Windows

我最近下载并安装了Telegraf-telegram bot api。它适用于Node.js。我查看了包括 github 在内的 17 个站点,但没有找到适合自己的解决方案。

这是错误:

还有我的bot.js代码:

我的系统: Windows 10 64bit

IDE: Visual Studio 代码 1.38.1

节点版本: 10.16.3

npm 版本: 6.11.3

请不要给我从 Google 找到的解决方案的链接。我试了100多次。如果你明白,请帮助我。谢谢

0 投票
1 回答
1563 浏览

node.js - 动态内联键盘按钮(nodejs、telegraf)

我需要使用 inlineKeyboard 从可以更改值和数量的“n”元素数组中创建一个菜单。我正在使用电报 API,这就是我创建静态 API 的方式:

我怎样才能做到这一点?我无法在标记内执行 for 循环

0 投票
1 回答
907 浏览

node.js - 如何避免从我的电报机器人收到重复的回复?

我写了一个简单的电报机器人,在输入命令后它会显示一些统计信息。它可以完美地工作,除非它被多次输入相同的命令(不同的用户使用该命令)。现在看起来像这样:

如果与前一条消息相同,则只显示一条消息。

我正在使用带有轮询方法的 node-telegram-bot-api(我稍后会移动它以使用 webhook)。

我只使用电报 api 中的 bot.onText/bot.sendMessage 函数。

TLDR:如果机器人多次收到相同的命令,它将回复一条消息 X 次。我需要避免这种情况。

0 投票
0 回答
358 浏览

telegram - 仅为 Telegram 组中的新用户显示“欢迎”消息

我是某个 Telegram 组的管理员。我添加了一个机器人。对于每个新用户,我都会删除旧的欢迎消息并添加新的,以减少不相关消息的数量。

有没有办法只向特定用户显示“欢迎”消息?还是给他发一条带有“欢迎”信息的私人信息?或者也许任何其他有趣的解决方案,您必须只为特定用户显示信息而不向其他人发送垃圾邮件?