مقدمة: لماذا TypeScript وليس Python؟
\n\nمرحباً أيها المطور! إذا كنت تقرأ هذا على PythonLib، فمن المحتمل أنك مندهش: "لماذا مقال عن TypeScript على موقع مخصص لـ Python؟". الإجابة بسيطة: عالم تكنولوجيا المعلومات لا يعترف بالحدود، والمطور الجيد يعرف كيف يخرج عن إطار لغة واحدة. TypeScript ليست مجرد "إضافة فوق JavaScript"، بل هي أداة قوية لإنشاء تطبيقات موثوقة وقابلة للتوسع ويمكن التنبؤ بها. وبوتات تيليجرام هي البيئة المثالية لتجربتها عملياً.
\n\nتخيل: أنت تكتب الكود، وبيئة التطوير المتكاملة (IDE) تبرز الأخطاء مسبقاً، وأنواع البيانات تمنع الانهيار في وقت التشغيل، والإكمال التلقائي يعمل كالساعة السويسرية. هذا ليس سحراً، بل هو TypeScript. في هذا الدليل، سننشئ بوت تيليجرام كاملاً بلغة TypeScript من الصفر: من التسجيل في BotFather إلى النشر. ستتعلم كيفية إعداد المشروع، ومعالجة الأوامر، وإرسال الرسائل، والعمل مع واجهات برمجة التطبيقات الخارجية (API).
\n\nهل أنت مستعد؟ إذاً لننطلق!
\n\nلماذا تختار TypeScript لبوت تيليجرام
\n\nقبل الغوص في الكود، دعنا نفهم لماذا يجب كتابة البوت بلغة TypeScript بدلاً من Python، التي تبدو وكأنها اللغة "الأم" لمثل هذه المهام.
\n\n- \n
- الكتابة (Typing) صديقك. عندما يحتوي المشروع على 10+ أوامر و20 معالجاً، ستنقذك TypeScript من الأخطاء السخيفة مثل تمرير سلسلة نصية بدلاً من رقم. \n
- بناء جملة حديث. Async/await، التفكيك (Destructuring)، الوحدات (Modules) - كل هذا يجعل الكود أنظف وأكثر قابلية للقراءة. \n
- النظام البيئي لـ Node.js. عدد هائل من المكتبات، بما في ذلك Telegraf (أفضل إطار عمل للبوتات). \n
- الأداء. Node.js هي منصة موجهة بالأحداث، مثالية لبوتات الدردشة ذات الأحمال العالية. \n
بالمناسبة، بخصوص Telegraf: هو إطار عمل يعطي الأولوية لـ TypeScript، مما يجعل العمل مع Telegram Bot API في غاية السهولة. سنستخدمه بالتحديد.
\n\nالتحضير: ما يجب تثبيته
\n\nللبدء، ستحتاج إلى:
\n\n# تأكد من تثبيت Node.js (الإصدار 18+) و npm\nnode -v\nnpm -v\n\n# أنشئ مجلد المشروع\nmkdir telegram-bot-ts\ncd telegram-bot-ts\n\n# قم بتهيئة المشروع\nnpm init -y\n\nالآن، لنقم بتثبيت التبعيات:
\n\nnpm install telegraf dotenv\nnpm install -D typescript @types/node ts-node nodemon\n\nدعنا نفهم ما قمنا بتثبيته:
\n- \n
- telegraf - الإطار الرئيسي للبوت. \n
- dotenv - لتخزين التوكن في ملف .env (الأمان قبل كل شيء). \n
- typescript, @types/node, ts-node - لتجميع وتشغيل TS. \n
- nodemon - لإعادة التشغيل التلقائي عند إجراء تغييرات. \n
أنشئ ملف tsconfig.json:
{\n "compilerOptions": {\n "target": "ES2020",\n "module": "commonjs",\n "strict": true,\n "esModuleInterop": true,\n "skipLibCheck": true,\n "forceConsistentCasingInFileNames": true,\n "outDir": "./dist"\n },\n "include": ["src/**/*"],\n "exclude": ["node_modules"]\n}\n\nوملف .env (لا تنس إضافته إلى .gitignore!):
BOT_TOKEN=توكن_خاص_بك_من_BotFather\n\nتسجيل البوت: التعرف على BotFather
\n\nهذه هي المرحلة الأسهل. افتح تيليجرام، ابحث عن @BotFather وأرسل الأمر /newbot. اتبع التعليمات:
- \n
- أدخل اسم البوت (مثلاً، "مساعدي الذكي"). \n
- أدخل اسم المستخدم (يجب أن ينتهي بـ
bot، مثلاًmy_smart_helper_bot). \n - انسخ التوكن الذي حصلت عليه وألصقه في ملف
.env. \n
تم! الآن لديك مفتاح واجهة برمجة تطبيقات تيليجرام.
\n\nهيكل المشروع والتشغيل الأول
\n\nأنشئ مجلد src وداخله ملف index.ts:
// src/index.ts\nimport { Telegraf } from 'telegraf';\nimport { mess