如何使用 Node.js 设计电影电报机器人?
Telegram bot API 可用于创建聊天机器人,通过将电影或连续剧的名称作为命令发送来返回电影、网络连续剧和电视连续剧的完整详细信息。 Telegram 提供了一堆 API 的方法来执行不同的功能。电报机器人可用于了解电影的完整细节,而无需访问其他网站,如 IMDb 网站等。
先决条件:
- 了解 Javascript 和设置节点环境。
- 最新版本的Node(版本> 10)
- 最新版本的 npm(版本 > 6)
检查系统中是否存在 Node 和 npm 的命令:
$ npm --v
6.14.5
$ node --version
v10.15.0
创建 Bot 并获取 API 令牌:
- 打开电报应用程序并搜索@BotFather。
- 单击开始按钮或发送“/start”。
- 然后发送“/newbot”消息来设置名称和用户名。
- 然后 BotFather 会给你一个 API 令牌。
获取电影 API 密钥:
- 访问 OMDB(开放电影数据库)网站。
- 根据限制创建一个帐户。
- 您将收到自己的 API 密钥。
模块安装:
请求:要安装此模块,请在终端中键入以下命令。
$ npm install --save requests
node-telegram-bot-api :与官方 Telegram Bot API 交互的 Node.js 模块。
$ npm install node-telegram-bot-api
文件名:bot.js
// Requiring module
var reques = require('requests')
var TelegramBot = require('node-telegram-bot-api')
token = "YOUR-TELEGRAM_API-TOKEN"
movieapi = "YOUR-OMDB_API-TOKEN"
// Create a bot that uses 'polling'
// to fetch new updates
var bot = new TelegramBot(token, { polling: true });
bot.on("polling_error", (err) => console.log(err));
bot.onText(/\/movie (.+)/, function (msg, match) {
// The 'msg' is the received Message from
// user and 'match' is the result of
// execution above on the text content
// Getting the name of movie from the
// message sent to bot
var movie = match[1];
var chatId = msg.chat.id
reques('http://www.omdbapi.com/?t='
+ movie + '&apikey=movieapi',
function (error, response, body) {
if (!error && response.statusCode == 200) {
bot.sendMessage(chatId,
'_Looking for_ ' + movie + '...',
{ parse_mode: "Markdown" }).then(msg) {
res = JSON.parse(body)
bot.sendPhoto(chatId, res.Poster, {
caption: 'Result:\nTitle: '
+ res.Title + '\nGenre: '
+ res.Genre + '\nRated: '
+ res.Rated + ' \nReleased: '
+ res.Released
})
// Sending back response from the
// bot to the user
// Response has many other details,
// which can be used or sent as per
// requirement
}
}
})
})
运行程序的步骤:使用以下命令运行bot.js文件:
$ node bot.js
现在,转到您的机器人并输入/movie movie-name并查看结果。
输出: