📜  如何使用 Node.js 设计电影电报机器人?

📅  最后修改于: 2022-05-13 01:56:51.834000             🧑  作者: Mango

如何使用 Node.js 设计电影电报机器人?

Telegram bot API 可用于创建聊天机器人,通过将电影或连续剧的名称作为命令发送来返回电影、网络连续剧和电视连续剧的完整详细信息。 Telegram 提供了一堆 API 的方法来执行不同的功能。电报机器人可用于了解电影的完整细节,而无需访问其他网站,如 IMDb 网站等。

先决条件:

  1. 了解 Javascript 和设置节点环境。
  2. 最新版本的Node(版本> 10)
  3. 最新版本的 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并查看结果。

输出: