构建 Telegram 机器人以发送每日通知
我运营着一个网站,专门收录前端开发者常用的公共 API,并运营着一个 Telegram 群组供用户交流。我决定每天在群组里随机分享一个 API。后来,我又决定将这项工作自动化,而不是手动分享到群组。
使用 NoCode 工具
如果您不想编写代码和搭建服务器,那么您可以在 5 分钟内设置 Telegram API。无需代码即可使用 Telegram API 。
使用代码
现在开始编写代码。
步骤 1:使用机器人(@botfather)设置新机器人
在 Telegram 搜索中搜索名称“ @botfather ”,然后点击此名称发送命令。
/newbot创建机器人并按照说明操作。最后,您将获得用于使用 Telegram API 的 access_token。
现在你已经创建了一个机器人。请在 Telegram 搜索 (@name_bot) 中搜索它。
现在我们来编写这个机器人的代码,让它自动执行这些任务。具体来说,我们要将每日随机API新闻推送到一个Telegram频道。
步骤二:让我们为这个机器人搭建服务器
我使用glitch.com搭建服务器,并使用 NodeJS 编写机器人代码。
在 Glitch 中创建一个 Express 项目。您可以将此项目设置为公开或私有。
我使用查克·诺里斯的公共 API 来发送他每天的趣味语录。我在这里找到了查克·诺里斯的 API。
var express = require('express')
var app = express()
var bodyParser = require('body-parser')
const axios = require('axios')
const {
Telegram
} = require('telegraf')
const tg = new Telegram(process.env.BOT_TOKEN)
app.use(bodyParser.json()) // for parsing application/json
app.use(
bodyParser.urlencoded({
extended: true
})
)
app.get('/random-jokes', function(req, res) {
axios.get('https://api.chucknorris.io/jokes/random').then(res => {
const txt = res.data.value
tg.sendMessage(process.env.GROUP_ID, txt)
})
res.send('Joke is delivered')
})
// Finally, start our server
app.listen(3000, function() {
console.log('Telegram app listening on port 3000!')
})
在.env文件中设置环境变量。
BOT_TOKEN=<bot_access_token>
GROUP_ID=<group_id>
现在获取这些环境变量。您可以使用@botfather轻松获取访问令牌。
要获取群组 ID,首先将机器人添加到您想要发送每日通知的群组。添加机器人后,在浏览器中调用以下 API 即可获取群组 ID。
https://api.telegram.org/bot<bot_access_token>/getUpdates
因此,此 API 将返回一个 JSON 对象数组。找到一个具有组名且该对象 ID 等于组 ID 的对象。
//like this object
"chat":{
"id":-369192376, // this is the group id
"title":"xyz",
"type":"group",
"all_members_are_administrators":true
}
就这样。现在您已经有了 access_token 和 group_id。您的服务器已准备好发送通知。
现在尝试在浏览器中输入 API URL 看看。
https://chuck-noris-fun.glitch.me/random-jokes
//https://<your glitch project name>/random-jokes
是的,它奏效了。
步骤 3:使用 CRON 任务自动调用该 API 端点。有很多工具可以用来运行 CRON 任务。我使用的是Easy Cron,它非常简单易用。
太棒了!!!你已经成功创建了自己的 Telegram 机器人。还有更多精彩内容等你探索。如果你需要更高级的 Telegram 机器人教程,请在下方留言告诉我。
感谢阅读。
Twitter:@mddanishyusuf
网站:mohddanish.me
项目:NoCodeAPI


