بناء روبوت برقية في Yandex.Cloud

إنشاء بوت برقية

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

تنصل
- , — .

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

برقية بوت أفكار ذكية



أفكار أليس مهارة ذكية

إنشاء بوت


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

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

إنشاء روبوت جديد

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

اسم بوت

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

اسم بوت

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

إعدادات الروبوت

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

بوت: الوصف والمعلومات الموجزة

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

التثبيت والاستخدام في الأمر bot

وظيفة ياندكس


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

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

إنشاء دالة Yandex

بعد النقر فوق إنشاءوبعد بضع ثوانٍ ، ستظهر وظيفة جديدة في قائمة جميع الوظائف. انقر على اسمها - وهذا سيقودنا إلى صفحة نظرة عامة على وظيفتنا . هنا تحتاج إلى تمكين ( على ) و ظيفة عمومية التبديل بحيث تصبح متوفرة من الخارج (ل Yandex.Cloud ) العالم، وقيمة الارتباط و معرف الحقول يتم الاحتفاظ بها في سر من الجميع ما عدا نفسك وبرقية بحيث الدالة مختلف المحتالين لا يمكنهم الاتصال.

خصائص ميزات Yandex

الآن ، باستخدام القائمة اليسرى ، انتقل إلى محرر الوظائف. دعونا نضع جانبا أفكارنا الذكية لفترة قصيرة.، وخلق الحد الأدنى من وظيفة القالب لاختبار أداء الروبوت الخاص بنا ... ومع ذلك ، في هذا السياق ، هذه الوظيفة هي روبوتنا ... باختصار ، الآن وفي الوقت الحالي سنقوم بإنشاء روبوت بسيط "سوف يعكس" (أي ، يرسل مرة أخرى ) طلبات المستخدم. يمكن استخدام هذا القالب دائمًا عند إنشاء روبوتات برقية جديدة للتأكد من أن التواصل مع Telegram يعمل بشكل صحيح. انقر فوق إنشاء ملف ، وقم بتسميته 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 ، يجب أن يبدو شيئًا مثل هذا:

كود أبسط روبوت على وظائف Yandex

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

نقطة إدخال دالة Yandex

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


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

بناء دلو.

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

اهداف رغب او تمنى شخص ما ان يحققها في حياته

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

إنشاء مجلد داخل دلو

الآن يمكنك النقر على اسم المجلد ، والذهاب إليه وتحميل الملفات:

تحميل ملف إلى مجلد في دلو

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

الحصول على عنوان ملف في تخزين الكائن

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

Webhook


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

تثبيت Webhook

الاختبار. يجب أن "مرآة".

أول اختبار بوت

وهناك. مبروك - الآن وظيفة ياندكس أصبحت برقية بوت!

أفكار ذكية


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

بوت كود الأفكار الذكية

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

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 .

أرشيف مضغوط من أفكار ذكية الروبوت

انتقل الآن إلى وظيفة Yandex في وحدة التحكم ، وحدد علامة التبويب أرشيف ZIP ، وانقر فوق الزر تحديد ملف ، وقم بتنزيل أرشيف smart.zip . أخيرًا ، في الزاوية العلوية اليمنى ، انقر فوق الزر إنشاء إصدار .

إنشاء نسخة عمل من البوت

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

الانتهاء من الروبوتات الأفكار الذكية

المراجع


GitHub
Yandex Cloud Functions
Yandex Object Storage
Bots: مقدمة للمطورين رمز
Telegram Bot API

استنتاج


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

دوناتس


الدونات

Source: https://habr.com/ru/post/undefined/


All Articles