الدليل: كيفية إنشاء روبوت Telegram بسيط في JS للمبتدئين في البرمجة

لقد بدأت الانغماس في عالم تكنولوجيا المعلومات منذ ثلاثة أسابيع فقط. على محمل الجد، قبل ثلاثة أسابيع لم أكن أفهم حتى بناء جملة HTML، وانتهت مقدمتي للغات البرمجة بمنهج مدرسي على لغة باسكال منذ 10 سنوات. ومع ذلك، قررت الذهاب إلى معسكر تكنولوجيا المعلومات، حيث سيكون من الجيد للأطفال أن يصنعوا روبوتًا. قررت أن الأمر ليس بهذه الصعوبة.

ومن هنا بدأت رحلة طويلة قمت فيها بما يلي:

  • نشر خادم سحابي مع Ubuntu،
  • مسجل على جيثب،
  • تعلم بناء جملة جافا سكريبت الأساسية،
  • قراءة الكثير من المقالات باللغتين الإنجليزية والروسية،
  • وأخيرا صنعت بوت
  • وأخيرا كتبت هذا المقال.

تبدو النتيجة النهائية شيئًا مثل هذا:

الدليل: كيفية إنشاء روبوت Telegram بسيط في JS للمبتدئين في البرمجة

سأقول على الفور أن هذه المقالة للمبتدئين - فقط لفهم كيفية القيام بالأشياء الأساسية من الصفر.

وأيضاً - للمبرمجين المتقدمين - فقط لإضحاكهم قليلاً.

1. كيفية كتابة التعليمات البرمجية في JS؟

لقد فهمت أن الأمر يستحق على الأقل فهم بناء جملة اللغة أولاً. وقع الاختيار على JavaScript، وذلك ببساطة لأن الخطوة التالية بالنسبة لي كانت إنشاء تطبيق في ReactNative. لقد بدأت مع دورة على Codecademy وكان سعيدًا جدًا. أول 7 أيام مجانية. مشاريع حقيقية. أوصي. استغرق استكماله حوالي 25 ساعة. في الواقع، لم يكن كل ذلك مفيدًا. هذا ما يبدو عليه هيكل الدورة والكتلة الأولى بالتفصيل.

الدليل: كيفية إنشاء روبوت Telegram بسيط في JS للمبتدئين في البرمجة

2. كيفية تسجيل بوت؟

لقد ساعدني هذا كثيرًا في البداية هذه المقالة من مدونة أرشاكوف معين. يمضغ البداية. لكن الشيء الرئيسي هو وجود تعليمات لتسجيل الروبوت. لا أستطيع كتابتها بشكل أفضل، وبما أن هذا هو الجزء الأسهل، سأكتب فقط جوهر الأمر. تحتاج إلى إنشاء روبوت والحصول على واجهة برمجة التطبيقات (API) الخاصة به. ويتم ذلك من خلال روبوت آخر - @BotFather. ابحث عنه على برقية، واكتب إليه، واتبع المسار البسيط واحصل (احفظ!) على مفتاح واجهة برمجة التطبيقات (هذه مجموعة من الأرقام والحروف). لقد أصبح مفيدًا لاحقًا.

الدليل: كيفية إنشاء روبوت Telegram بسيط في JS للمبتدئين في البرمجة

3. كيف يبدو رمز الروبوت؟

بعد دراسة المقالات لفترة طويلة، أدركت أنه من المفيد استخدام نوع من المكتبة (رمز جهة خارجية بتنسيق الوحدة النمطية) حتى لا داعي للقلق بشأن دراسة Telegram API وإنشاء أجزاء كبيرة من التعليمات البرمجية من البداية. لقد وجدت الإطار برقية، والتي يجب أن تكون متصلة بطريقة ما بشيء ما باستخدام npm أو الغزل. هذا تقريبًا ما فهمته بعد ذلك مما يتكون منه نشر الروبوت. اضحك هنا. لن أشعر بالإهانة. ساعدتني الأمثلة الموجودة في أسفل الصفحة كثيرًا أثناء الإنشاء اللاحق للروبوت:

الدليل: كيفية إنشاء روبوت Telegram بسيط في JS للمبتدئين في البرمجة

3. كيفية إنشاء خادم سحابي خاص بك مقابل 100 روبل

بعد الكثير من البحث، أدركت أن الأمر "npm" الموجود في الصورة أعلاه يشير إلى سطر الأوامر. سطر الأوامر موجود في كل مكان، ولكن لتتمكن من تنفيذه، تحتاج إلى تثبيت NodePackageManager. كانت المشكلة أنني كنت أقوم بالبرمجة على PixelBook باستخدام ChromeOS. سأتخطى هنا مقطعًا كبيرًا حول كيفية تعلمي لنظام Linux - فهو بالنسبة لمعظم الناس فارغ وغير ضروري. إذا كان لديك Windows أو MacBook، فلديك بالفعل وحدة تحكم.

باختصار، قمت بتثبيت Linux عبر Crostini.

ومع ذلك، في هذه العملية، أدركت أنه لكي يعمل الروبوت باستمرار (وليس فقط عندما يكون جهاز الكمبيوتر الخاص بي قيد التشغيل)، أحتاج إلى خادم سحابي. اخترت vsscale.io لقد أنفقت 100 روبل واشتريت أرخص خادم Ubuntu (انظر الصورة).

الدليل: كيفية إنشاء روبوت Telegram بسيط في JS للمبتدئين في البرمجة

4. كيفية تجهيز السيرفر لتشغيل البوت

بعد ذلك، أدركت أنني بحاجة إلى إنشاء نوع من المجلد على الخادم الذي سأضع فيه الملف مع نص التعليمات البرمجية. للقيام بذلك، دخلت في وحدة التحكم (التي تعمل مباشرة على موقع الويب من خلال زر "فتح وحدة التحكم")

mkdir bot

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. كيفية تحميل الكود على الخادم عبر جيثب

الآن أنا بحاجة إلى تحميل هذا الرمز بطريقة أو بأخرى إلى الخادم وتشغيله. أصبح هذا تحديا بالنسبة لي. ونتيجة لذلك، بعد الكثير من المحنة، أدركت أنه سيكون من الأسهل إنشاء ملف على جيثب يسمح لك بتحديث التعليمات البرمجية باستخدام أمر في وحدة التحكم. لقد قمت بتسجيل حساب على جيثب و فعل مشروع جديد، حيث قمت بتحميل الملف. بعد ذلك، كنت بحاجة لمعرفة كيفية إعداد تحميل الملفات من حسابي (مفتوح!) إلى الخادم في مجلد الروبوت (إذا تركته فجأة، فما عليك سوى كتابة cd bot).

7. كيفية تحميل الملفات إلى الخادم عبر جيثب الجزء 2

كنت بحاجة إلى تثبيت برنامج على الخادم يمكنه تنزيل الملفات من git. لقد قمت بتثبيت git على الخادم عن طريق الكتابة في وحدة التحكم

apt-get install git

بعد ذلك كنت بحاجة لتكوين تحميل الملف. للقيام بذلك، كتبت في سطر الأوامر

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

ونتيجة لذلك، تم تحميل كل شيء من المشروع إلى الخادم. كان الخطأ في هذه المرحلة هو أنني قمت بإنشاء مجلد ثانٍ داخل مجلد الروبوت الموجود بالفعل. يبدو عنوان الملف مثل */bot/bot/index.js

قررت أن أتجاهل هذه المشكلة.

ولتحميل مكتبة التلغراف، التي نطلبها في السطر الأول من الكود، اكتب الأمر في وحدة التحكم.

npm install telegraf

8. كيفية إطلاق الروبوت

للقيام بذلك، أثناء وجودك في المجلد الذي يحتوي على الملف (للانتقال من مجلد إلى مجلد عبر وحدة التحكم، قم بتشغيل أمر التنسيق 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'))

ردًا على الأمر القياسي/المساعدة، أرسل الرسالة "أرسل لي ملصقًا"

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

إرسال الموافقة ردًا على الملصق

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

أجب بـ "مرحبًا" إذا كتبوا له "مرحبًا".
إطلاق الروبوت ()

الدليل: كيفية إنشاء روبوت Telegram بسيط في JS للمبتدئين في البرمجة

إذا نظرت إلى الكود في جيثب، فسوف تفهم بسرعة أنني لم أبتعد كثيرًا عن هذه الوظيفة. ما يتم استخدامه بنشاط هو الوظيفة ctx.replyWithPhoto يسمح لك بإرسال صورة أو صورة GIF محددة ردًا على نص معين.

تمت كتابة جزء كبير من الكود بواسطة أطفال تتراوح أعمارهم بين 11 و13 عامًا، وقد منحتهم إمكانية الوصول إلى الروبوت. لقد دخلوا حالة المستخدم الخاصة بهم. أعتقد أنه من السهل معرفة الجزء الذي صنعوه.

على سبيل المثال، ستتلقى رسالة "Jake" صورة GIF مع شخصية مشهورة من الرسوم المتحركة Adventure Time.

الدليل: كيفية إنشاء روبوت Telegram بسيط في JS للمبتدئين في البرمجة

لتطوير البوت بشكل أكبر، تحتاج إلى توصيل لوحة المفاتيح، راجع الأمثلة، على سبيل المثال، من هنا

11. كيفية تحديث الكود وإعادة تشغيل البوت

لا تنس أنك تحتاج إلى تحديث الكود ليس فقط على جيثب، ولكن أيضًا على الخادم. من السهل القيام بذلك - قم بإيقاف الروبوت (اضغط على ctrl+c)،

- أدخل إلى وحدة التحكم أثناء وجودك في المجلد الهدف، git pull
- نقوم بتشغيل الروبوت مرة أخرى باستخدام الأمر node index.js

END

العديد من الأشياء الموضحة في هذا الملف ستكون واضحة جدًا للمبرمجين المتقدمين. ومع ذلك، عندما حاولت بنفسي القفز فوق الهوة إلى عالم الروبوتات بضربة واحدة، فاتني حقًا مثل هذا الدليل. دليل لا يفوت الأشياء الواضحة والبسيطة لأي متخصص في تكنولوجيا المعلومات.

في المستقبل، أخطط لنشر منشور حول كيفية إنشاء تطبيقك الأول على ReactNative بنفس الأسلوب، اشترك!

المصدر: www.habr.com

إضافة تعليق