إنشاء بوت تيليغرام بلغة رست: دليل خطوة بخطوة للشجعان

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

بوت تيليغرام بلغة رست: لماذا يجب تجربته؟

\n

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

\n

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

\n\n

ما ستحتاجه للبدء

\n

قبل الغوص في الكود، تأكد من أن لديك:

\n
    \n
  • رست و Cargo — قم بالتثبيت عبر rustup (الموقع الرسمي rustup.rs). تحقق من الإصدار: rustc --version
  • \n
  • رمز بوت تيليغرام — احصل عليه من @BotFather في تيليغرام. فقط أرسل /newbot واتبع التعليمات
  • \n
  • فهم أساسي لـ async/await — في رست يتم ذلك عبر tokio أو async-std
  • \n
\n

سنستخدم مكتبة teloxide — وهي على الأرجح الإطار الأكثر نضجًا وتوثيقًا لإنشاء بوتات تيليغرام بلغة رست. وهي مبنية على tokio وتوفر API مناسب لجميع أنواع التفاعلات.

\n\n

الخطوة 1: إنشاء المشروع وتثبيت التبعيات

\n

افتح الطرفية ونفذ:

\n
cargo new my_telegram_bot\ncd my_telegram_bot
\n

الآن قم بتحرير ملف Cargo.toml، وأضف التبعيات:

\n
[package]\nname = "my_telegram_bot"\nversion = "0.1.0"\nedition = "2021"\n\n[dependencies]\nteloxide = { version = "0.12", features = ["macros"] }\ntokio = { version = "1", features = ["full"] }\nlog = "0.4"\nenv_logger = "0.10"
\n

شرح: teloxide — أداتنا الرئيسية، tokio — وقت التشغيل غير المتزامن، log و env_logger — للتسجيل المريح.

\n\n

الخطوة 2: التشغيل الأول — بوت الصدى

\n

لنكتب بوتًا بسيطًا يرد بنفس النص الذي أُرسل إليه. استبدل محتوى src/main.rs بـ:

\n
use teloxide::prelude::*;\n\n#[tokio::main]\nasync fn main() {\n    env_logger::init();\n    log::info!("جارٍ تشغيل بوت الصدى...");\n\n    let bot = Bot::from_env();\n\n    teloxide::repl(bot, |bot: Bot, msg: Message| async move {\n        if let Some(text) = msg.text() {\n            bot.send_message(msg.chat.id, text).await?;\n        }\n        Ok(())\n    })\n    .await;\n}
\n

لاحظ: Bot::from_env() يبحث عن متغير البيئة TELOXIDE_TOKEN. أنشئ ملف .env في جذر المشروع أو قم بتصدير الرمز يدويًا:

\n
export TELOXIDE_TOKEN="رمز_البوت_الخاص_بك"
\n

قم بتشغيل البوت: cargo run. أرسل له أي رسالة في تيليغرام — يجب أن يرد. تهانينا، أول بوت تيليغرام لك بلغة رست يعمل!

\n\n

الخطوة 3: معالجة الأوامر وتصفية الرسائل

\n

الصدى البسيط ممل. دعنا نضيف الأمرين /start و /help. سنستخدم وحدات الماكرو في teloxide لإنشاء آلة حوار (dialogue).

\n
use teloxide::prelude::*;\nuse teloxide::utils::command::BotCommand;\n\n#[derive(BotCommand)]\n#[command(rename = "lowercase", description = "الأوامر المتاحة:")]\nenum Command {\n    #[command(description = "بدء المحادثة")]\n    Start,\n    #[command(description = "إظهار المساعدة")]\n    Help,\n}\n\nasy                

المدونات

توصيات الكتب