راهنما: نحوه ساخت یک ربات تلگرام ساده در JS برای یک مبتدی در برنامه نویسی

من فقط سه هفته پیش شروع به غوطه ور شدن در دنیای IT کردم. به طور جدی، سه هفته پیش من حتی سینتکس HTML را نمی فهمیدم، و مقدمه من با زبان های برنامه نویسی با برنامه درسی مدرسه در پاسکال از 10 سال پیش به پایان رسید. با این حال، تصمیم گرفتم به یک کمپ فناوری اطلاعات بروم، جایی که بچه ها خوب است که یک ربات بسازند. من تصمیم گرفتم که به سختی آنقدر سخت است.

این یک سفر طولانی را آغاز کرد که در آن من:

  • یک سرور ابری با اوبونتو مستقر کرد،
  • ثبت شده در GitHub،
  • سینتکس پایه جاوا اسکریپت را یاد گرفت،
  • تعداد زیادی مقاله به زبان انگلیسی و روسی بخوانید،
  • بالاخره یک ربات ساخت،
  • بالاخره این مقاله را نوشتم.

نتیجه نهایی چیزی شبیه به این بود:

راهنما: نحوه ساخت یک ربات تلگرام ساده در JS برای یک مبتدی در برنامه نویسی

من فوراً خواهم گفت که این مقاله ای برای مبتدیان است - فقط برای اینکه بفهمید چگونه کارهای ابتدایی را از همان ابتدا انجام دهید.

و همچنین - برای برنامه نویسان پیشرفته - فقط برای اینکه کمی بخندند.

1. چگونه در JS کد بنویسیم؟

فهمیدم که حداقل ارزش این را دارد که ابتدا نحو زبان را بفهمم. انتخاب روی جاوا اسکریپت افتاد، زیرا قدم بعدی برای من ایجاد یک برنامه در ReactNative بود. من شروع کردم با دوره در Codecademy و بسیار خوشحال شدم. 7 روز اول رایگان است. پروژه های واقعی من توصیه می کنم. تکمیل آن حدود 25 ساعت طول کشید. در واقع، همه آن مفید نبود. این همان چیزی است که ساختار دوره و اولین بلوک با جزئیات به نظر می رسد.

راهنما: نحوه ساخت یک ربات تلگرام ساده در JS برای یک مبتدی در برنامه نویسی

2. چگونه ربات ثبت کنیم؟

اوایل خیلی به من کمک کرد این مقاله از وبلاگ یک Archakov خاص. او در همان ابتدا می جود. اما نکته اصلی که وجود دارد دستورالعمل ثبت ربات است. بهتر نمی نویسم و ​​چون این ساده ترین قسمت است، فقط اصل مطلب را می نویسم. شما باید یک ربات بسازید و API آن را دریافت کنید. این کار از طریق یک ربات دیگر انجام می شود - @BotFather. او را در تلگرام پیدا کنید، برایش بنویسید، مسیر ساده را دنبال کنید و کلید API را (ذخیره کنید) بگیرید (این مجموعه ای از اعداد و حروف است). بعداً برای من مفید بود.

راهنما: نحوه ساخت یک ربات تلگرام ساده در JS برای یک مبتدی در برنامه نویسی

3. کد ربات چه شکلی است؟

پس از مطالعه طولانی مقالات، متوجه شدم که ارزش استفاده از نوعی کتابخانه (کد شخص ثالث در قالب ماژول) را دارد تا نگران مطالعه API تلگرام و ایجاد کدهای بزرگ از ابتدا نباشم. چارچوب را پیدا کردم تلگراف، که باید به نحوی با استفاده از npm یا نخ به چیزی متصل می شد. اینگونه فهمیدم که استقرار ربات شامل چه چیزی است. اینجا بخند من ناراحت نمی شوم. مثال‌های پایین صفحه بیشترین کمک را به من در ایجاد بعدی ربات کرد:

راهنما: نحوه ساخت یک ربات تلگرام ساده در JS برای یک مبتدی در برنامه نویسی

3. چگونه سرور ابری خود را با 100 روبل ایجاد کنید

پس از جستجوی زیاد متوجه شدم که دستور 'npm' در تصویر بالا به خط فرمان اشاره دارد. خط فرمان در همه جا وجود دارد، اما برای اینکه بتوانید آن را اجرا کنید، باید NodePackageManager را نصب کنید. مشکل این بود که من روی پیکسل بوک با ChromeOS برنامه نویسی می کردم. من در اینجا از یک بلوک بزرگ در مورد نحوه شناختم با لینوکس صرف نظر می کنم - برای اکثر افراد، این خالی و غیر ضروری است. اگر ویندوز یا مک بوک دارید، از قبل یک کنسول دارید.

به طور خلاصه، من لینوکس را از طریق Crostini نصب کردم.

با این حال، در این فرآیند، متوجه شدم که برای اینکه ربات همیشه کار کند (و نه فقط زمانی که رایانه من روشن است)، به یک سرور ابری نیاز دارم. من انتخاب میکنم vscale.io من 100 روبل انداختم، ارزان ترین سرور اوبونتو را خریدم (تصویر را ببینید).

راهنما: نحوه ساخت یک ربات تلگرام ساده در JS برای یک مبتدی در برنامه نویسی

4. نحوه آماده سازی سرور برای اجرای ربات

بعد از آن متوجه شدم که باید پوشه ای روی سرور ایجاد کنم که فایل را با متن کد در آن قرار دهم. برای انجام این کار، در کنسول (مستقیماً از طریق دکمه "کنسول باز" در سایت اجرا می شود)، رانندگی کردم

mkdir bot

ربات - این نام پوشه من شد. پس از آن، من npm و Node.js را نصب کردم، که به من اجازه می دهد کد را از فایل هایی با وضوح *.js اجرا کنم.

sudo apt update
sudo apt install nodejs
sudo apt install npm

من به شدت توصیه می کنم در این مرحله از طریق کنسول خود به سرور اتصال برقرار کنید. اینجا دستور العمل این به شما امکان می دهد مستقیماً از طریق کنسول رایانه خود با سرور کار کنید.

5. نحوه کدنویسی ربات اول.

اما اکنون برای من فقط یک کشف است. هر برنامه ای فقط خطوط متنی است. آنها را می توان در هر جایی درج کرد، با پسوند مورد نظر ذخیره کرد، و تمام. شما زیبا هستی. من استفاده کردم اتم، اما در واقع، شما فقط می توانید در یک دفترچه یادداشت استاندارد بنویسید. نکته اصلی این است که فایل را بعداً در پسوند مورد نظر ذخیره کنید. مانند نوشتن متن در Word و ذخیره آن است.

من یه فایل جدید ساختم که کد نمونه رو تو صفحه تلگراف گذاشتم و تو فایل index.js ذخیره کردم (اصلا لازم نیست فایل رو اینطوری بزارم ولی قبول میشه). مهم - به جای BOT_TOKEN، کلید API خود را از پاراگراف دوم وارد کنید.

const Telegraf = require('telegraf')

const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Welcome!'))
bot.help((ctx) => ctx.reply('Send me a sticker'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
bot.launch()

6. نحوه آپلود کد روی سرور از طریق github

حالا باید به نوعی این کد را روی سرور آپلود کنم و اجرا کنم. این برای من یک چالش شد. در نتیجه، پس از مشقت های فراوان، متوجه شدم که ایجاد فایلی در github که به شما امکان می دهد کد را با استفاده از یک دستور در کنسول به روز کنید، آسان تر است. من یک حساب کاربری ثبت کردم گیتهاب و انجام داد پروژه جدید، جایی که فایل را آپلود کردم. پس از آن، من باید نحوه تنظیم آپلود فایل ها از حساب خود (باز!) به سرور موجود در پوشه ربات را بیابم (اگر به طور ناگهانی آن را ترک کردید، فقط cd bot را بنویسید).

7. نحوه آپلود فایل ها روی سرور از طریق github قسمت 2

باید برنامه ای را روی سرور قرار می دادم که فایل ها را از git دانلود کند. من git رو با تایپ کردن روی سرور نصب کردم

apt-get install git

پس از آن، باید آپلود فایل را تنظیم کنم. برای انجام این کار، من وارد خط فرمان شدم

git clone git://github.com/b0tank/bot.git bot

در نتیجه همه چیز از پروژه روی سرور آپلود شد. اشتباه در این مرحله این بود که من اساساً یک پوشه دوم را در پوشه ربات موجود ایجاد کردم. آدرس فایل شبیه */bot/bot/index.js بود

تصمیم گرفتم این مشکل را نادیده بگیرم.

و برای بارگذاری کتابخانه telegraf که در خط اول کد درخواست می کنیم، دستور را در کنسول تایپ کنید.

npm install telegraf

8. چگونه ربات را راه اندازی کنیم

برای انجام این کار، در پوشه ای با فایل (برای انتقال از پوشه ای به پوشه دیگر از طریق کنسول، دستور format را اجرا کنید. cd bot برای اطمینان از اینکه در جایی هستید که باید باشید، می توانید دستوری را وارد کنید که تمام فایل ها و پوشه های موجود در کنسول را در کنسول نمایش می دهد. ls -a

برای شروع وارد کنسول شدم

node index.js

اگر خطایی وجود نداشته باشد، همه چیز خوب است، ربات کار می کند. در تلگرام دنبالش بگرد اگر خطایی وجود دارد، دانش خود را از نقطه 1 اعمال کنید.

9. نحوه اجرای ربات در پس زمینه

خیلی سریع متوجه خواهید شد که ربات فقط زمانی کار می کند که خودتان در کنسول نشسته باشید. برای حل این مشکل از دستور استفاده کردم

screen

پس از این، صفحه ای با مقداری متن ظاهر می شود. این یعنی همه چیز خوب است. شما روی سرور مجازی روی سرور ابری هستید. برای درک بهتر اینکه چگونه همه چیز کار می کند - در اینجا مقاله است. فقط به پوشه خود بروید و دستور راه اندازی ربات را وارد کنید

node index.js

10. نحوه کار ربات و نحوه گسترش عملکرد آن

ربات ما از مثال چه کاری می تواند انجام دهد؟ او می تواند

bot.start((ctx) => ctx.reply('Welcome!'))

بگویید "خوش آمدید!" در ابتدا (سعی کنید متن را تغییر دهید)

bot.help((ctx) => ctx.reply('Send me a sticker'))

در پاسخ به دستور استاندارد /help، پیام ارسال یک برچسب برای من ارسال کنید.

bot.on('sticker', (ctx) => ctx.reply(''))

ارسال تاییدیه در پاسخ به یک برچسب

bot.hears('hi', (ctx) => ctx.reply('Hey there'))

اگر به او «سلام» بنویسند، «سلام» را پاسخ دهید
bot.launch()

راهنما: نحوه ساخت یک ربات تلگرام ساده در JS برای یک مبتدی در برنامه نویسی

اگر به کد در نگاه کنید گیتهاب، سپس شما به سرعت متوجه خواهید شد که من از این عملکرد دور نرفته ام. آنچه به طور فعال استفاده می شود تابع است ctx.replyWithPhoto این امکان را به شما می دهد تا عکس یا گیف مشخصی را در پاسخ به یک متن خاص ارسال کنید.

بخش قابل توجهی از کد توسط کودکان 11-13 ساله نوشته شده است که من به آنها اجازه دسترسی به ربات را دادم. آنها وارد کیس کاربری خود شدند. من فکر می کنم به راحتی می توان تشخیص داد که کدام قسمت توسط آنها ساخته شده است.

به عنوان مثال، پیام "جیک" یک GIF با یک شخصیت معروف از کارتون Adventure Time دریافت می کند.

راهنما: نحوه ساخت یک ربات تلگرام ساده در JS برای یک مبتدی در برنامه نویسی

برای توسعه بیشتر ربات، باید صفحه کلید را وصل کنید، مثال هایی را ببینید، به عنوان مثال، از این رو

11. نحوه به روز رسانی کد و راه اندازی مجدد ربات

فراموش نکنید که شما باید کد را نه تنها در github، بلکه در سرور نیز به روز کنید. انجام این کار آسان است - ربات را متوقف کنید (ctrl + c را فشار دهید)،

- در حالی که در پوشه هدف هستید وارد کنسول شوید، git pull
— با دستور دوباره ربات را راه اندازی می کنیم node index.js

END

بسیاری از مواردی که در این فایل توضیح داده شده است برای برنامه نویسان پیشرفته بسیار واضح است. با این حال، وقتی خودم سعی کردم یکباره از ورطه به دنیای ربات ها بپرم، واقعاً چنین راهنمایی را از دست دادم. راهنمایی که برای هیچ متخصص IT چیزهای واضح و ساده را از دست نمی دهد.

در آینده، من یک پست در مورد نحوه ساخت اولین برنامه خود در ReactNative به همان سبک برنامه ریزی می کنم، مشترک شوید!

منبع: www.habr.com

اضافه کردن نظر