发布于 2026-01-06 0 阅读
0

构建 Telegram 机器人以发送每日通知

构建 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!')
})
Enter fullscreen mode Exit fullscreen mode

在.env文件中设置环境变量

BOT_TOKEN=<bot_access_token>
GROUP_ID=<group_id>
Enter fullscreen mode Exit fullscreen mode

现在获取这些环境变量。您可以使用@botfather轻松获取访问令牌。

要获取群组 ID,首先将机器人添加到您想要发送每日通知的群组。添加机器人后,在浏览器中调用以下 API 即可获取群组 ID。

https://api.telegram.org/bot<bot_access_token>/getUpdates
Enter fullscreen mode Exit fullscreen mode

因此,此 API 将返回一个 JSON 对象数组。找到一个具有组名且该对象 ID 等于组 ID 的对象。

//like this object
"chat":{
   "id":-369192376, // this is the group id
   "title":"xyz",
   "type":"group",
   "all_members_are_administrators":true
}
Enter fullscreen mode Exit fullscreen mode

就这样。现在您已经有了 access_token 和 group_id。您的服务器已准备好发送通知。

现在尝试在浏览器中输入 API URL 看看。

https://chuck-noris-fun.glitch.me/random-jokes
//https://<your glitch project name>/random-jokes
Enter fullscreen mode Exit fullscreen mode

是的,它奏效了。

机器人正在运行

步骤 3:使用 CRON 任务自动调用该 API 端点。有很多工具可以用来运行 CRON 任务。我使用的是Easy Cron,它非常简单易用。

添加定时任务

太棒了!!!你已经成功创建了自己的 Telegram 机器人。还有更多精彩内容等你探索。如果你需要更高级的 Telegram 机器人教程,请在下方留言告诉我。

感谢阅读。

Twitter:@mddanishyusuf
网站:mohddanish.me
项目:NoCodeAPI

文章来源:https://dev.to/mddanishyusuf/build-telegram-bot-to-send-daily-notification-4i00