إنشاء روبوت Telegram في Yandex.Cloud

إنشاء روبوت Telegram في Yandex.Cloud

اليوم ، من المواد الخردة ، سنجمعها ياندكس كلاود بوت برقية مع وظائف سحابة Yandex (أو وظائف ياندكس للإيجاز) و تخزين كائنات Yandex (أو تخزين الكائنات - للتوضيح). سيكون الرمز في نود.جي إس. ومع ذلك ، هناك ظرف واحد حاد - منظمة معينة تسمى ، دعنا نقول ، روسكوم (الرقابة محظورة بموجب المادة 29 من دستور الاتحاد الروسي) ، لا تسمح لمقدمي خدمات الإنترنت في روسيا بنقل الطلبات إلى Telegram API على ما يلي: https://api.telegram.org/. حسنًا ، لن نفعل - لا ، لا. في الواقع ، في حقيبتنا هناك ما يسمى. webhooks - بمساعدتهم ، لا نقدم طلبات لعنوان معين ، ولكن نرسل طلبنا فقط كرد على أي طلب لنا. هذا ، كما هو الحال في أوديسا - نجيب على سؤال بسؤال. لهذا Telegram API لن تظهر في التعليمات البرمجية الخاصة بنا.

تنصلأسماء أي منظمات حكومية مذكورة في هذا المقال وهمية ، والتزامن المحتمل مع أسماء منظمات الحياة الواقعية هو عرضي.

لذلك ، سوف نصنع روبوتًا يمدنا بأفكار ذكية. بالضبط كما في الصورة:

إنشاء روبوت Telegram في Yandex.Cloud

يمكنك تجربتها في الواقع - هنا الاسم: تضمين التغريدة. لاحظ الزر "مهارة أليس"؟ هذا لأن الروبوت هو نوع من "الرفيق" للاسم نفسه مهارة أليس، أي. يؤدي نفس وظائف مهارة أليس وربما يمكنهم التعايش السلمي للإعلان عن بعضهم البعض. حول كيفية إنشاء مهارة التفكير الذكي الموصوفة في المقالة تحصل أليس على المهارة. الآن (بعد إجراء بعض التغييرات بعد نشر المقال أعلاه) على هاتف ذكي مهارة سوف تبدو شيئا من هذا القبيل:

إنشاء روبوت Telegram في Yandex.Cloud

إنشاء بوت

أود أن يكون هذا البرنامج التعليمي مفيدًا للجميع ، بما في ذلك. والمبتدئين "بناة الروبوتات". لذلك ، في هذا القسم سأصف بشيء من التفصيل كيفية الإنشاء بشكل عام في تیلیجرامالروبوتات. بالنسبة لأولئك الذين لا يحتاجون إلى هذه المعلومات ، انتقل إلى الأقسام التالية.

افتح التطبيق برقية، نسمي أب جميع الروبوتات (لديهم كل شيء مثل الأشخاص) - BotFather - وبداية ، سنعطيه أمر المساعدة / لتحديث ذاكرتنا لما يمكننا القيام به. الآن نحن مهتمون بالفريق / newbot.

إنشاء روبوت Telegram في Yandex.Cloud

نظرًا لأن الروبوت الموصوف هنا قد تم إنشاؤه بالفعل ، ولأغراض توضيحية ، سأقوم بإنشاء روبوت آخر لفترة قصيرة (ثم سأحذفه). سأتصل به DemoHabrBot. الأسماء (اسم المستخدم) يجب أن تنتهي كل روبوتات التلغرام بكلمة بوتعلى سبيل المثال: MyCoolBot أو my_cool_bot هذا للروبوتات. لكن أولاً ، قم بتسمية الروبوت (الاسم) للناس. يمكن أن يكون الاسم بأي لغة ، ويحتوي على مسافات ، ولا يجب أن ينتهي بكلمة بوت، ولا يجب أن تكون فريدة من نوعها. في هذا المثال ، اتصلت بهذا الروبوت ديمو هبر.

إنشاء روبوت Telegram في Yandex.Cloud

اختر الآن اسمًا للبوت (اسم المستخدم، واحد لبرامج الروبوت). دعنا نسميها DemoHabrBot. كل ما يتعلق باسم البوت (الاسم) لا علاقة له باسمه إطلاقا - اسم المستخدم (أو ينطبق ، لكن العكس تمامًا). بعد إنشاء اسم روبوت فريد بنجاح ، نحتاج إلى نسخ الرمز المميز المعروض في لقطة الشاشة بسهم أحمر وحفظه (بسرية تامة!). بمساعدتها ، سنقوم لاحقًا بتثبيت المنتهية ولايته تیلیجرام'خطاف الويب الخاص بنا دالة Yandex.

إنشاء روبوت Telegram في Yandex.Cloud

والآن سنعطي الأمر لأب جميع الروبوتات: / mybotsوسيُظهر لنا قائمة بجميع الروبوتات التي أنشأناها. دعنا نترك الروبوت المخبوز حديثًا بمفرده في الوقت الحالي ديمو هبر (تم إنشاؤه لإظهار كيفية إنشاء روبوتات ، لكننا سنستخدمها اليوم لأغراض توضيحية أخرى) ، واعتبر الروبوت أفكار ذكية (تضمين التغريدة). انقر فوق الزر الذي يحمل اسمه في قائمة الروبوتات.

إنشاء روبوت Telegram في Yandex.Cloud

هذا هو المكان الذي يمكننا فيه إعداد الروبوت الخاص بنا. الضغط على زر تصحيح… سننتقل إلى تعديل خيار أو آخر. على سبيل المثال ، من خلال النقر فوق الزر تعديل الاسم يمكننا تغيير اسم الروبوت ، قل بدلاً من أفكار ذكية، اكتب أفكار مجنونة. بوتبيك - هذه هي الصورة الرمزية للروبوت ، يجب أن تكون على الأقل 150 150 X مقصف. الوصف هو وصف قصير يراه المستخدم عند إطلاق الروبوت لأول مرة كإجابة على السؤال: ماذا يمكن أن يفعل هذا الروبوت؟ من نحن - وصف أقصر يتم إرساله مع ارتباط إلى الروبوت (https://t.me/SmartThoughtsBot) أو عند عرض معلومات عنها.

إنشاء روبوت Telegram في Yandex.Cloud

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

إنشاء روبوت Telegram في Yandex.Cloud

دالة Yandex

الآن بعد أن تم إنشاء الروبوت الخاص بنا ، دعنا ننتقل إلى ياندكس كلاودلإنشاء وظيفة من شأنها تنفيذ كود الروبوت الخاص بنا. إذا لم تكن قد عملت مع ياندكس كلاود اقرأ المادة أليس في أرض بيتريكس، وثم - تقوم وظائف Yandex بإرسال البريد. أنا متأكد تقريبًا من أن هاتين المقالتين الصغيرتين نسبيًا ستكونان كافيتين لك للحصول على فهم أساسي للموضوع.

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

إنشاء روبوت Telegram في Yandex.Cloud

بعد الضغط على الزر خلق وبعد بضع ثوان ، ستظهر الوظيفة الجديدة في قائمة جميع الوظائف. انقر فوق اسمها - هذا سينقلنا إلى الصفحة مراجعة وظيفتنا. هنا تحتاج إلى التمكينOn) يُحوّل الوظيفة العامةلجعله متاحًا من الخارج (لـ ياندكس) العالم وقيمة الحقول رابط للاتصال и معرف - احتفظ بها في سرية تامة عن الجميع باستثناء نفسك و Telegram ، حتى لا يتمكن المحتالون المختلفون من الاتصال بوظيفتك.

إنشاء روبوت Telegram في Yandex.Cloud

الآن باستخدام القائمة اليسرى انتقل إلى محرر المهام. دعونا نضع جانبا لدينا للحظة أفكار ذكية، وإنشاء دالة قالب مبسطة للتحقق من أداء الروبوت الخاص بنا ... ومع ذلك ، في هذا السياق ، هذه الوظيفة هي روبوتنا ... باختصار ، الآن وهنا سنصنع أبسط روبوت "يعكس" ( أي إرسال) طلبات المستخدم. يمكن دائمًا استخدام هذا القالب عند إنشاء روبوتات تلجرام جديدة للتأكد من التواصل مع برقية'أوم يعمل بشكل جيد. انقر إنشاء ملف، نسميها index.jsو عبر الإنترنت محرر الكود الصق الكود التالي في هذا الملف:

module.exports.bot = async (event) => {
  
  const body = JSON.parse(event.body);

  const msg = {
    'method': 'sendMessage',
    'chat_id': body.message.chat.id,
    'text': body.message.text
  };

  return {
    'statusCode': 200,
    'headers': {
      'Content-Type': 'application/json'
    },
    'body': JSON.stringify(msg),
    'isBase64Encoded': false
  };
};

في وحدة تحكم Yandex.Cloud ، يجب أن تبدو كما يلي:

إنشاء روبوت Telegram في Yandex.Cloud

أدناه ، نشير نقطة الدخول - Index.botحيث مؤشر هذا هو اسم الملف (index.jsم)، و بوت - اسم وظيفة (Module.exports.bot). اترك جميع الحقول الأخرى "كما هي" ، وانقر فوق الزر في الزاوية اليمنى العليا إنشاء نسخة. بعد بضع ثوان ، سيتم إنشاء هذا الإصدار من الوظيفة. بعد فترة وجيزة من الاختبار الويب هوك، سننشئ نسخة جديدة - أفكار ذكية.

إنشاء روبوت Telegram في Yandex.Cloud

تخزين الكائنات

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

إنشاء روبوت Telegram في Yandex.Cloud

بعد ذلك ، قد تبدو قائمة كل المجموعات على النحو التالي (إذا كان هذا هو دلوك الوحيد):

إنشاء روبوت Telegram في Yandex.Cloud

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

إنشاء روبوت Telegram في Yandex.Cloud

يمكنك الآن النقر فوق اسم المجلد والدخول إليه وتحميل الملفات:

إنشاء روبوت Telegram في Yandex.Cloud

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

إنشاء روبوت Telegram في Yandex.Cloud

هنا ، في الواقع ، هذا كل شيء تخزين الكائن. ستعرف الآن ما يجب فعله عندما ترى المطالبة بتحميل الملفات هناك.

الويب هوك

الآن سنقوم بتثبيت الويب هوك - أي. عندما يتلقى الروبوت تحديثًا (على سبيل المثال ، رسالة من المستخدم) ، من الخادم تیلیجرام في موقعنا دالة Yandex سيتم إرسال الطلبطلب) مع البيانات. إليك سلسلة يمكنك لصقها ببساطة في حقل العنوان بالمتصفح ، ثم تحديث الصفحة (يجب تنفيذ ذلك مرة واحدة فقط): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
فقط استبدل {bot_token} إلى الرمز المميز الذي تلقيناه من الأب عند إنشاء الروبوت الخاص بنا ، و {webhook_url} - على URL لنا وظائف ياندكس. انتظر دقيقة! لكن روسكوم يحظر مقدمي الخدمة في الاتحاد الروسي لخدمة العنوان https://api.telegram.org. نعم هذا صحيح. لكن يمكنك التفكير في شيء ما. بعد كل شيء ، يمكنك ، على سبيل المثال ، أن تسأل جدتك عن ذلك في أوكرانيا أو إسرائيل أو كندا - لا توجد "رقابة روسية" هناك ، والله وحده يعرف كيف يعيش الناس بدونها. نتيجة لذلك ، يجب أن تبدو استجابة الطلب عند تثبيت الويب هوك كما يلي:

إنشاء روبوت Telegram في Yandex.Cloud

اختبارات. يجب أن تكون معكوسة.

إنشاء روبوت Telegram في Yandex.Cloud

هذا صحيح. تهانينا - الآن دالة Yandex أصبح تیلیجرام-بوت!

أفكار ذكية

والآن نقوم بعمل أفكار ذكية. الشفرة مفتوحة وتستند إليها GitHub جيثب:. لقد تم التعليق عليه جيدًا ، ويبلغ طوله مائة سطر فقط. اقرأها مثل نصوص أوبرا مغنية!

إنشاء روبوت Telegram في Yandex.Cloud

استنساخ المشروع وتثبيت التبعيات:

git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i

قم بإجراء التغييرات التي تريدها على الملف index.js (اختياري ، لا يمكنك تغيير أي شيء). يخلق الرمز البريدي-أرشيف مع ملف index.js والمجلد node_modules داخل ، على سبيل المثال ، يسمى Smart.zip.

إنشاء روبوت Telegram في Yandex.Cloud

اذهب الآن في وحدة التحكم لدينا وظائف ياندكس، حدد علامة التبويب أرشيف مضغوط، اضغط الزر حدد ملفوتنزيل أرشيفنا Smart.zip. أخيرًا ، في الزاوية اليمنى العليا ، انقر فوق الزر إنشاء نسخة.

إنشاء روبوت Telegram في Yandex.Cloud

في غضون ثوانٍ قليلة ، عندما يتم تحديث الوظيفة ، سنختبر الروبوت الخاص بنا مرة أخرى. الآن لم يعد "مرايا" ، بل يقدم أفكارًا ذكية!

إنشاء روبوت Telegram في Yandex.Cloud

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

مراجع

كود على جيثب
وظائف سحابة Yandex
تخزين كائنات Yandex
الروبوتات: مقدمة للمطورين
واجهة برمجة تطبيقات Telegram Bot

онаты

إنشاء روبوت Telegram في Yandex.Cloud

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

إضافة تعليق