بوت تلغرام بدون خادم باستخدام سحابة Yandex

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



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



ملاحظة أيضًا ، المقالة مستوحاة من عدم وجود برنامج تعليمي في Python ، وهناك برنامج تعليمي جيد عن Nodejs .



رابط

لوثائق Yandex Cloud Functions رابط إلى وثائق Telegram API .






الخطوة 1 : التسجيل وتسجيل الدخول إلى منصة Yandex السحابية



ملحوظة
. , Serverless VPS. «» .



الخطوة 2 : أدخل الوظائف. هنا تحتاج إلى تحديد "وظائف السحابة" في اللوحة اليسرى من "وحدة التحكم الإدارية"



صورة



الخطوة 3 : اضغط على الزر صورة. ثم نضع اسمًا ووصفًا لوظيفة ذات معنى.



النصيحة
< >-<>-<>.



telegram-study-bot, weather-get-api ..



. language=python3.7, lib=telebot



الخطوة 4 : حدد علامة التبويب "محرر"



صورة



وبعد ذلك سنفتح نافذة لإدارة كود وظيفتنا. هنا يمكننا اختيار:



1) "وقت التشغيل" ، في حالتنا هو python3.7



حول التبعيات
preview , ( 02.10.2020 )



2) "الطرق" هي المسؤولة عن كيفية تمرير الكود إلى الوظيفة. في هذه المقالة سوف نستخدم محرر التعليمات البرمجية المباشر كأبسط مثال.



3) "نقطة الدخول" هي المسؤولة عن الوظيفة التي ستتلقى الطلب وستكون بداية عمل وظيفتنا ، وسنشير إليها بعد قليل.



4) بعد ذلك تأتي "المعلمات" ، أقترح تركها كما هي.



إذا كنت تريد استخدام التراخيص
, , .



الخطوة الخامسة : تأكد من أن لدينا مجموعة "وقت التشغيل" و "الطريقة" الصحيحة ،



صورة



ثم انقر فوق "إنشاء ملف" ، فلنسمه main.py.



الخطوة 6 : سيؤدي هذا إلى فتح محرر الكود حيث يمكننا إنشاء وظيفة معالج الطلب. دعنا نسميها معالج وأدخل هذا الرمز:



import json

def handler(event, context):
    body = json.loads(event['body'])
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json'
        },
        'body': json.dumps({
            'method': 'sendMessage',
            'chat_id': body['message']['chat']['id'],
            'text':  body['message']['text']
        }),
        'isBase64Encoded': False
    }


حلل الكود
«json», body json- python dict.



handler , , . .



body Python json.loads body .



, webhook telegram , body, json.dumps, .



انتباه!!!



في "نقطة الدخول" تحتاج إلى تحديد هذه الوظيفة كبداية البرنامج النصي. نكتب main.handler . يجب أن يكون على النحو التالي:



صورة



ثم نضغط على "إنشاء نسخة" وننتظر حتى يتم نقلنا إلى علامة التبويب "نظرة عامة".



الخطوة 7 : نحن هنا مهتمون بـ "رابط الاتصال" ومفتاح التبديل "الوظيفة العامة". نضغط على المفتاح ونتذكر مكان ارتباط المكالمة.



صورة



الخطوة 8 : قم بإنشاء روبوت برقية وانسخ الرمز الخاص به. تحتاج إلى إنشاء استعلام مثل:



https://api.telegram.org/bot<bot_token>/setWebHook?url=<webhook_url>


حيث bot_token هو الرمز المميز لروبوت telegram ، و webhook_url هو "رابط الاتصال" من الوظائف (الخطوة 7). يجب جمع هذا الطلب وإدراجه في سطر المتصفح.



طلب مثال
https://api.telegram.org/bot1234567:AAAAAAAAAAAAAAA/setWebHook?url=https://functions.yandexcloud.net/asdjaskjdasdjasd




الخطوة 9 : أرسل "hello" إلى الروبوت وشاهد ما حصلنا عليه في النهاية.



صورة



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



All Articles