如何在TG上创建机器人

创建机器人Bot

在Telegram上,找个人叫BotFather,他是一个机器人,可以直接与他对话。

通过如下三步即可创建一名你自己的机器人:

1、/newbot申请创建机器人,此时他会回复你提供机器人的名字(昵称)

2、botname这个你自己起就行,比如mytestbot20241114(区别下面示例,方便理解)

3、botid这个就是这个机器人的账号,就是Telegram可以搜索到的类似userid的东西,有个要求就是必须bot结尾,如mytest20241114bot

在这里插入图片描述

此时,你就可以拿到上面这样的回复,有个Done,说明生成成功,在中间HTTP API下面有个高亮的token,这个就是验证启动服务用的,保留好,很好用。

(注意,同样的token在启动服务时候,会被后启动的顶掉。这个还是好理解的吧。

下面使用Node.js做示例,可以看下如何快速集成。

const TelegramBot = require('node-telegram-bot-api')
// const { SocksProxyAgent } = require('socks-proxy-agent')

// const agent = new SocksProxyAgent('socks://localhost:7078')
const token = '7719541817:AAETjgrLtsfwkABC4KtqjkbiYjguCdXtty0'

const bot = new TelegramBot(token, {
  polling: true,
  // request: {
  //   agent
  // }
})

bot.onText(/\/echo (.+)/, (msg, match) => {
  const chatId = msg.chat.id
  const resp = match[1]
  bot.sendMessage(chatId, resp)
})

bot.on('message', (msg) => {
  const chatId = msg.chat.id
  bot.sendMessage(chatId, 'Received your message. ' + process.env.NODE_ENV + ' ' + process.env.runtime)
})

这里要注意被我注释的部分,由于Telegram服务器的特殊性,所以如果你在本地运行,大概率是会出现error: [polling_error] {"code":"EFATAL","message":"EFATAL: Error: connect ETIMEDOUT xxx.xxx.xxx.xxx:443"}类似这样的错误,不要慌,就是科学的事情。

所以,在你的科学工具支持socket的情况下,需要使用我上面注释代码的内容,替换其中的url为你自己的本地或远程都行。

如果你部署在国外服务器上,则不需要注释的那些代码,放心删掉就好了。

这里的onText就是匹配文本,类似express的router,这里用了正则匹配,获取消息id和消息的内容实体(截取有效业务部分)。

下面的message是消息监听,会同时获取到上面的onText,所以会出现两次消息,解决方案就是代码排除即可。

我在message里面加上来环境变量区分线上和线下,无所谓。

最后效果如图:

在这里插入图片描述

这里本地未设置环境变量,所以都是undefined。
响应的token不可用,因为我已经删掉这个机器人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值