Articles of 电报机器人

如何响应电报僵尸Webhook请求? 相同的请求重复

我正在使用官方的电报bot api来制作一个使用nodejs的电报机器人(用于学习目的)。 我设置了一个webhook heroku。 我可以回复这个请求,但是经过一段时间之后,同样的请求会再次出现。 得到相同的请求是正常的,还是我没有回应接下来的请求。 当我调用getwebhookinfo方法时,它显示了pending_update_count,但是我的代码确实响应了来自webhook的所有请求。 我用这个来回复即将到来的请求 var express = require('express'); var bodyParser = require('body-parser'); var app = express(); var config = require('./lib/config'); var request = require('request'); var port = process.env.PORT || 3000; var reply_url = "https://api.telegram.org/bot"+config.bot_token; app.use(bodyParser.json()); app.get('/',function(req,res) { res.send("Working"); request({ url: "https://api.telegram.org/bot"+config.bot_token+'/getMe', json : true }, (err,res,body)=>{ console.log(body); }); }); app.post('/'+config.bot_token , […]

电报API inline request_contact

在内联button或者api请求中可以使用request_contact吗? 我知道键盘,但它不适合我。

用PM2运行一个自定义的npm脚本

我目前正在开发几个电报机器人,但我想保留在同一个git存储库。 问题在于另一方面,我想把它们作为单独的进程运行。 由于我使用的是Telegraf框架,所以要运行一个机器人,例如: micro-bot src/bot-one/bot.js 这个问题出现在PM2上时。 我已经能够运行npm start脚本的机器人之一,像这样: pm2 start –name "WeatherBot" npm — start — -t < TOKEN> 但我想能够创build像这样的自定义脚本: "main": "src/weatherWarnBot/bot.js", "scripts": { "start": "micro-bot", "littleAppleBot": "micro-bot src/littleAppleBot/bot.js", "weatherWarnBot": "micro-bot src/weatherWarnBot/bot.js" } 但是,PM2命令将如何运行两个自定义脚本中的每一个? 为了简化,我正在考虑将bot代币设置为系统的环境variables。

通过Telegram Bot与用户对话共享内联消息链接

我正在使用node-telegram-bot-api,并且我有一个内联键盘,如何共享链接当用户单击该内联链接? 我需要select一个对话,然后在这个对话中粘贴这个链接: (telegram.me/my_bot?start) const iopts = { reply_markup: { inline_keyboard: [ [{ text: `Share This Bot to Your Friends`, url: `telegram.me/my_bot?start` }] ] } };

使用javascript在日常聊天中的string逻辑

我为Telegram Bot创build了一个AI,目前我正在尝试处理文本,并像用户一样对用户作出响应。 例如; “我要注册” 作为一个人我们知道用户想要注册。 所以我会使用javascript的indexOf处理这个文本来查找并注册 var user_text = message.text; if (user_text.indexOf('want') >= 0) { if (user_text.indexOf('register') >= 0) { console.log('He wants to register?') } } 但是,如果文本不包含在string中的某个地方呢? 当然,我会为数十亿个案例提供数十个条件。 写这种逻辑会很累人。 我的问题是 – 有没有其他优雅的方式来做到这一点? 我真的不知道关键字谷歌这…

电报bot嵌套的前一个button,node.js

如何从第三级节点返回到第一级节点之后的第三级节点? 我的问题是Back名称,因为这是相同,,, 这是我的代码: bot.onText(/\/start/, function onLoveText(msg) { const opts = { reply_to_message_id: msg.message_id, reply_markup: JSON.stringify({ keyboard: StartKeyboard, resize_keyboard:true, one_time_keyboard: true }) }; bot.sendMessage(msg.chat.id, 'Hello', opts); }); bot.onText(/\Back/, function onLoveText(msg) { const opts = { reply_to_message_id: msg.message_id, reply_markup: JSON.stringify({ keyboard: StartKeyboard, resize_keyboard:true, one_time_keyboard: true }) }; bot.sendMessage(msg.chat.id, 'Hello', opts); }); bot.onText(/\Back/, function onLoveText(msg) { // I […]

Telegram Bot通过Node.js查找videofile_id

Hellow,我正在使用node-telegram-bot-api模块 如何find或控制台日志,其他机器人的videofile_id?

将可点击的button添加到电报机器人

我正在用node.js电报机器人开发一个简单的电报机器人。 https://github.com/yagop/node-telegram-bot-api现在,我想让用户停止input消息(用字母),只需按几个button之一。 当他点击button时,他的电报客户端必须发回给我的机器人另一个信息(有点像“点击是”或“点击否”)。 我发现它可以做成 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种消息,当他点击他们时,他不会再给我任何回应。 我需要另一种types的button(这将在客户端的应用程序的底部)。

Telegram bot api,通过@username发送消息

我的电报机器人可以与用户沟通,我想发送他们的聊天结果给pipe理员电报帐户。 我使用node telegram bot api作为我的机器人后端。 如何通过电报将消息发送到特定的@username ?

如何在电报中使用内联键盘创build分页

我正在创build一个Telegram机器人Node.js,我正在使用node-telegram-bot-api模块。 我目前的问题是: 使用内联键盘创build分页。 在这里的文档中,有一个我需要的有趣的例子。 对于外观,我必须使用方法editMessageText但更新内联键盘我需要传递参数inline_message_id 。 不幸的是,我不明白该怎么做。 我将非常感谢任何示例更新内联键盘,以及如何在这个例子中释放。