BOT – это программа программы, которая работает в Интернете и выполняет повторяющиеся задачи.
В этом руководстве мы создадим бот Telegram, который помогает скачать изображения из Pexels Отказ
Начиная
Есть бот под названием Botfather Что поможет вам создать свой бот.
BotFather – это один бот, чтобы управлять им все. Используйте его, чтобы создать новые учетные записи бота и управлять своими существующими ботами.
BotFather предоставляет вам некоторые команды следующим образом.
Так что создать бот, нажмите на /newbot
команда. После того, как вы создадите Bot BotFather, предоставит вам токен.
Для Nodejs есть много хороших рамки для Nodejs, в этом руководстве мы собираемся использовать Telegraf.
Давайте начнем кодировать
Инициализировать проект и установить Telegraf
$ npm init $ npm install telegraf
Теперь создайте файл и давайте добавим его скрипт и сделайте простой бот.
const { Telegraf } = require('telegraf') const bot = new Telegraf(process.env.BOT_TOKEN) bot.hears('hi', (ctx) => ctx.reply('Hey there')) bot.launch()
Превью
Pexelsplashbot.
Мы собираемся отправить лучшие 10 фотографий из Pexels, которые просят пользователь. Установите библиотеку Axios, чтобы упростить отправку запросов Get и схватывающих данные из Pexels.
npm install axios --save
const { Telegraf } = require('telegraf') const app = new Telegraf(process.env.BOT_TOKEN); const axios = require("axios"); const pexelKey = process.env.PEXEL_KEY;
Вы можете получить ключ API из Pexelsapi.
const fetchImages = async (text) => { try { const { data: { photos } } = await axios.get(`https://api.pexels.com/v1/search?query=${encodeURI(text)}&per_page=10`, { headers: { Authorization: pexelKey } }).catch((e) => console.log(e)); // {photos} contains photos object recieved from Pexels if (photos.length > 0) { return photos.map(({ src }) => ({ media: { url: src?.original }, caption: "Pexel", type: "photo" })); // mapping response from photos object } } catch (e) { throw e; } }
// when user sends a text message app.on("text") will call app.on("text", async (ctx) => { // A Telegraf Context encapsulates telegram update // So you can use everything you see there try { ctx.reply("⌛️ Please Wait It will take few seconds to grab Images"); // bot will send a reply to users. // GET the data from Pexels API const photos = await fetchImages(ctx.message.text); // fetchImages will return image objects from pexels. photos.length > 0 ? ctx.replyMediaGroup(photos) : ctx.reply("Sorry Image not found :("); // if photos available then we are sending photos otherwise we are sending a reply as `Sorry Image not found :(` // we are sending 10 images here so replyMediaGroup accepts an array with objects of media, caption, and type } catch (e) { console.log(e); ctx.reply("Please try after sometime PexelsPlash is down :(") } });
Я жив @Pexelsplashbot.
Упаковка
Как видите, мы создали простую телеграмму бота в минутах. Но вы можете сделать более прохладные вещи, используя Telegram Bot API.
Вы можете найти исходный код этого бота на Github Отказ
Оригинал: “https://dev.to/ajaykumbhare/build-a-telegram-bot-using-node-js-171h”