اليوم ، من المواد المتاحة ، سنقوم بتجميع روبوت 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: /) في حقل الإدخال ، فستظهر قائمة بالأوامر لاختيارهم السريع. كل شيء كما في الصورة: على اليسار - نضع الأوامر من خلال الأب بوت ؛ على اليسار ، هذه الأوامر متاحة بالفعل للمستخدمين في الروبوت الخاص بنا.
وظيفة ياندكس
الآن بعد أن تم إنشاء برنامج الروبوت الخاص بنا ، انتقل إلى Yandex. Cloud لإنشاء وظيفة تقوم بتنفيذ رمز برنامج الروبوت الخاص بنا. إذا لم تكن قد عملت مع Yandex.Cloud بعد ، فقم بقراءة مواد أليس في بلد Bitrix ، ثم ترسل وظائف Yandex البريد . أنا متأكد تمامًا من أن هاتين المقالتين الصغيرتين نسبيًا ستكون كافية بالنسبة لك للحصول على فهم أساسي للموضوع.لذلك ، في وحدة تحكم Yandex.Cloud في قائمة التنقل اليسرى ، حدد وظائف السحاب ، ثم انقر فوق الزر إنشاء وظيفة . نعطيها اسمًا ، ولها وصفًا موجزًا.
بعد النقر فوق إنشاءوبعد بضع ثوانٍ ، ستظهر وظيفة جديدة في قائمة جميع الوظائف. انقر على اسمها - وهذا سيقودنا إلى صفحة نظرة عامة على وظيفتنا . هنا تحتاج إلى تمكين ( على ) و ظيفة عمومية التبديل بحيث تصبح متوفرة من الخارج (ل Yandex.Cloud ) العالم، وقيمة الارتباط و معرف الحقول يتم الاحتفاظ بها في سر من الجميع ما عدا نفسك وبرقية بحيث الدالة مختلف المحتالين لا يمكنهم الاتصال.
الآن ، باستخدام القائمة اليسرى ، انتقل إلى محرر الوظائف. دعونا نضع جانبا أفكارنا الذكية لفترة قصيرة.، وخلق الحد الأدنى من وظيفة القالب لاختبار أداء الروبوت الخاص بنا ... ومع ذلك ، في هذا السياق ، هذه الوظيفة هي روبوتنا ... باختصار ، الآن وفي الوقت الحالي سنقوم بإنشاء روبوت بسيط "سوف يعكس" (أي ، يرسل مرة أخرى ) طلبات المستخدم. يمكن استخدام هذا القالب دائمًا عند إنشاء روبوتات برقية جديدة للتأكد من أن التواصل مع 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 ، يجب أن يبدو شيئًا مثل هذا:
بعد ذلك ، نحدد نقطة الدخول - index.bot ، حيث الفهرس هو اسم الملف ( index.js ) و bot هو اسم الوظيفة ( module.exports.bot ). نترك جميع الحقول الأخرى "كما هي" ، وفي الزاوية العلوية اليمنى ، انقر فوق الزر إنشاء نسخة . بعد بضع ثوانٍ ، سيتم إنشاء هذا الإصدار من الوظيفة. قريبًا ، بعد اختبار الرد التلقائي على الويب ، سننشئ إصدارًا جديدًا - أفكار ذكية .
تخزين الكائنات
الآن بعد أن أنشأنا وظيفة 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
. نعم هذا صحيح. لكنك توصل إلى شيء. بعد كل شيء ، يمكنك ، على سبيل المثال ، أن تسأل جدتك عن ذلك في أوكرانيا أو إسرائيل أو كندا - لا توجد "تعليقات روسية" هناك ، ويعرف إله واحد كيف يعيش الناس بدونها. ونتيجة لذلك ، يجب أن تبدو استجابة الطلب عند تثبيت ربط الويب كما يلي:
الاختبار. يجب أن "مرآة".
وهناك. مبروك - الآن وظيفة ياندكس أصبحت برقية بوت!أفكار ذكية
والآن نصنع أفكارًا ذكية. الرمز مفتوح ويقع على جيثب . تم التعليق عليه جيدًا ، ولا يوجد سوى مائة سطر فيه. اقرأها مثل الأوبرا المغنية الأوبرا!
استنساخ المشروع وتثبيت التبعيات: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 . أخيرًا ، في الزاوية العلوية اليمنى ، انقر فوق الزر إنشاء إصدار .
بعد بضع ثوانٍ ، عندما يتم تحديث الوظيفة ، سنختبر الروبوت مرة أخرى. الآن لم يعد "المرايا" ، لكنه يقدم أفكارًا ذكية!
المراجع
GitHubYandex Cloud FunctionsYandex Object StorageBots: مقدمة للمطورين رمزTelegram Bot APIاستنتاج
هذا كل شيء لهذا اليوم. يتبع مواد أخرى. لمن يهمك قراءته ، اشترك في إشعارات المنشورات الجديدة. يمكنك الاشتراك في هذا الموقع ( الاشتراك الزر أدناه)، أو على برقية قناة IT دروس زاخار ، أو على المجتمع من نفس الاسم على VK أو تويتر mikezaharov .دوناتس
