ساخت ربات تلگرام در Yandex.Cloud

ساخت ربات تلگرام در Yandex.Cloud

امروز از مواد بداهه جمع آوری می کنیم Yandex.Cloud ربات تلگرام با توابع ابر یاندکس (یا توابع Yandex برای اختصار) و ذخیره سازی اشیاء Yandex (یا ذخیره سازی اشیا - برای شفافیت). کد روشن خواهد شد Node.js و. با این حال، یک شرایط تلخ وجود دارد - یک سازمان خاص به نام، فرض کنید، سانسور RossKom (سانسور طبق ماده 29 قانون اساسی فدراسیون روسیه ممنوع است)، به ارائه دهندگان اینترنت در روسیه اجازه نمی دهد درخواست ها را به API تلگرام توسط آدرس: https://api.telegram.org/. خوب، ما نخواهیم کرد - نه، نه. در واقع، در کیف ما به اصطلاح وجود دارد. وب هوک ها - با کمک آنها، ما درخواستی را به آدرس خاصی ارائه نمی کنیم، بلکه فقط درخواست خود را به عنوان پاسخ به هر درخواستی برای ما ارسال می کنیم. یعنی همانطور که در اودسا - ما به یک سوال با یک سوال پاسخ می دهیم. از همین رو API تلگرام در کد ما ظاهر نمی شود.

سلب مسئولیتنام هر سازمان دولتی ذکر شده در این مقاله ساختگی است و همزمانی احتمالی با نام سازمان های واقعی تصادفی است.

بنابراین، ما یک ربات می سازیم که افکار هوشمندانه را در اختیار ما قرار می دهد. دقیقا مثل عکس:

ساخت ربات تلگرام در Yandex.Cloud

می توانید آن را در عمل امتحان کنید - این نام است: @SmartThoughtsBot. به دکمه توجه کنید "مهارت آلیس"? این به این دلیل است که ربات نوعی "همدم" برای همنام است مهارت آلیس، یعنی همان توابع را انجام می دهد مهارت آلیس و شاید بتوان همزیستی مسالمت آمیزی برای یکدیگر داشته باشد. درباره نحوه ایجاد مهارت تفکر هوشمند در مقاله شرح داده شده است آلیس مهارت را بدست می آورد. اکنون (پس از ایجاد تغییراتی پس از انتشار مقاله فوق) در یک گوشی هوشمند این مهارت چیزی شبیه به این خواهد بود:

ساخت ربات تلگرام در Yandex.Cloud

ایجاد ربات

من دوست دارم این آموزش برای همه مفید باشد، از جمله. و مبتدی "سازندگان ربات". بنابراین، در این بخش به طور کلی نحوه ایجاد را با جزئیات توضیح خواهم داد تلگرامربات ها برای کسانی که به این اطلاعات نیاز ندارند، به بخش های بعدی بروید.

برنامه را باز کنید تلگرام، ما به پدر همه ربات ها می گوییم (آنها همه چیز را مانند مردم دارند) - BotFather - و برای شروع، دستور / help را به او می دهیم تا حافظه ما را از کارهایی که می توانیم انجام دهیم تازه کند. اکنون به تیم علاقه مند هستیم / newbot.

ساخت ربات تلگرام در Yandex.Cloud

از آنجایی که ربات توضیح داده شده در اینجا قبلا ایجاد شده است، برای اهداف نمایشی، من یک ربات دیگر را برای مدت کوتاهی ایجاد خواهم کرد (سپس آن را حذف خواهم کرد). بهش زنگ میزنم DemoHabrBot. نام ها (نام کاربری) تمام ربات های تلگرام باید با یک کلمه ختم شوند ربات، برای مثال: MyCoolBot یا my_cool_bot این برای ربات ها است. اما ابتدا به ربات یک نام بدهید (نام) برای مردم است. نام می تواند به هر زبانی باشد، حاوی فاصله باشد، لازم نیست با یک کلمه تمام شود ربات، و حتی لازم نیست منحصر به فرد باشد. در این مثال من این ربات را صدا زدم دمو هابر.

ساخت ربات تلگرام در Yandex.Cloud

حالا یک نام برای ربات انتخاب کنید (نام کاربری، یکی برای ربات ها). بیایید آن را صدا کنیم DemoHabrBot. همه چیز مربوط به نام ربات (نام) اصلا به اسمش مربوط نیست - نام کاربری (یا اعمال می شود، اما دقیقا برعکس). پس از ایجاد موفقیت آمیز یک نام ربات منحصر به فرد، باید رمز نشان داده شده در اسکرین شات را با یک فلش قرمز کپی و ذخیره کنیم (در نهایت اطمینان!). با کمک آن، ما بعداً خروجی را نصب خواهیم کرد تلگرامیک وب هوک برای ما تابع Yandex.

ساخت ربات تلگرام در Yandex.Cloud

و اکنون دستور را به پدر همه ربات ها می دهیم: /mybotsو لیستی از تمام ربات هایی که ایجاد کرده ایم به ما نشان می دهد. بیایید ربات تازه پخته را فعلا به حال خود رها کنیم دمو هابر (برای نشان دادن نحوه ایجاد ربات ایجاد شده است، اما امروز از آن برای اهداف نمایشی دیگر استفاده خواهیم کرد) و ربات را در نظر بگیرید افکار هوشمند (@SmartThoughtsBot). روی دکمه با نام آن در لیست ربات ها کلیک کنید.

ساخت ربات تلگرام در Yandex.Cloud

اینجاست که می توانیم ربات خود را راه اندازی کنیم. فشار دادن یک دکمه ویرایش ... ما به سمت ویرایش یک یا گزینه دیگر خواهیم رفت. به عنوان مثال، با کلیک بر روی دکمه ویرایش نام ما می توانیم نام ربات را تغییر دهیم، به جای آن بگوییم افکار هوشمند، نوشتن ایده های دیوانه کننده. Botpic - این آواتار ربات است، حداقل باید باشد 150 X 150 PX. توضیحات: توضیح کوتاهی است که کاربر هنگام راه اندازی ربات برای اولین بار می بیند، به عنوان پاسخ به این سوال: این ربات چه کاری می تواند انجام دهد؟ درباره ما - یک توضیح حتی کوتاه تر، که با پیوند به ربات منتقل می شود (https://t.me/SmartThoughtsBot) یا هنگام مشاهده اطلاعات مربوط به آن.

ساخت ربات تلگرام در Yandex.Cloud

ما فقط باید دستورات را تنظیم کنیم. برای انجام این کار، دکمه را فشار دهید دستورات را ویرایش کنید. برای استاندارد کردن شیوه های کاربر تلگرام توصیه می کند همیشه از دو دستور استفاده کنید: / شروع کنید и / کمک، و اگر ربات به تنظیمات نیاز دارد - یک دستور /settings اضافی. ربات ما به سادگی یک توپ است، بنابراین هنوز نیازی به تنظیمات ندارد. دو دستور اول را می نویسیم که سپس در کد پردازش می کنیم. حال اگر کاربر یک اسلش (کاراکتر اسلش: ​​/) را در قسمت ورودی وارد کند، لیستی از دستورات برای انتخاب سریع او ظاهر می شود. همه چیز مانند تصویر است: در سمت چپ - ما دستورات را از طریق ربات پدر تنظیم می کنیم. در سمت راست، این دستورات در حال حاضر در ربات ما در دسترس کاربران هستند.

ساخت ربات تلگرام در Yandex.Cloud

تابع Yandex

حالا که ربات ما ایجاد شد، بیایید به Yandex.Cloudبرای ایجاد تابعی که کد ربات ما را اجرا می کند. اگر با آن کار نکرده اید Yandex.Cloud مطالب را بخوانید آلیس در سرزمین بیتریکس، و سپس - توابع Yandex نامه ارسال می کنند. من تقریباً مطمئن هستم که این دو مقاله نسبتاً کوچک برای درک اساسی از موضوع کافی است.

بنابراین در کنسول Yandex.Clouds در منوی ناوبری سمت چپ، مورد را انتخاب کنید توابع ابرو سپس دکمه را فشار دهید یک تابع ایجاد کنید. ما به آن نام می دهیم، و برای خودمان - شرح مختصری.

ساخت ربات تلگرام در Yandex.Cloud

پس از فشار دادن دکمه ساختن و پس از چند ثانیه، تابع جدید در لیست تمام توابع ظاهر می شود. روی نام او کلیک کنید - این ما را به صفحه می برد مرور عملکرد ما در اینجا باید فعال کنیدOn) تعویض عملکرد عمومیبرای در دسترس قرار دادن آن از خارج (برای Yandex.Clouds) از جهان، و ارزش زمینه ها لینک تماس и مشخص کننده - آن را از همه به جز خود و تلگرام مخفی نگه دارید تا کلاهبرداران مختلف نتوانند عملکرد شما را فراخوانی کنند.

ساخت ربات تلگرام در Yandex.Cloud

حالا با استفاده از منوی سمت چپ به سردبیر کارکرد. یک لحظه خودمان را کنار بگذاریم افکار هوشمند، و یک تابع قالب حداقل برای بررسی عملکرد ربات خود ایجاد کنید ... با این حال ، در این زمینه ، این تابع ربات ما است ... به طور خلاصه ، اکنون و همینجا ساده ترین رباتی را می سازیم که "آینه" می شود ( یعنی ارسال مجدد ) درخواست های کاربر. این قالب همیشه می تواند هنگام ایجاد ربات های جدید تلگرام استفاده شود تا از ارتباط با آن مطمئن شوید تلگرامom خوب کار میکنه کلیک فایل ایجاد کنید، صداش کن 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.Cloud

در زیر نشان می دهیم نقطه ورود - index.botجایی که شاخص این نام فایل (index.js)، آ ربات - نام تابع (module.exports.bot). تمام فیلدهای دیگر را "همانطور که هستند" بگذارید و در گوشه سمت راست بالای دکمه روی دکمه کلیک کنید ایجاد نسخه. پس از چند ثانیه، این نسخه از تابع ایجاد خواهد شد. به زودی پس از آزمایش وب هوک، ما یک نسخه جدید ایجاد خواهیم کرد - افکار هوشمند.

ساخت ربات تلگرام در Yandex.Cloud

ذخیره سازی اشیا

حالا که راه اندازی کردیم تابع Yandexتا زمانی که در کنسول هستیم، بریم Yandex.Clouds، ایجاد به اصطلاح. سطل (سطل، یعنی سطل به زبان روسی، به هیچ وجه یک دسته گل) برای ذخیره فایل های تصویری که در ربات ما استفاده می شود افکار هوشمند. از منوی ناوبری سمت چپ انتخاب کنید ذخیره سازی شی، دکمه را فشار دهید سطل ایجاد کنید، برای مثال یک نام به آن بدهید img-bucketو از همه مهمتر خواندن دسترسی به اشیاء آن را عمومی کنید - در غیر این صورت تلگرام تصاویر ما را نخواهد دید. همه فیلدهای دیگر بدون تغییر باقی می مانند. دکمه را فشار می دهیم سطل ایجاد کنید.

ساخت ربات تلگرام در Yandex.Cloud

پس از آن، فهرستی از همه سطل ها ممکن است چیزی شبیه به این باشد (اگر این تنها سطل شما باشد):

ساخت ربات تلگرام در Yandex.Cloud

اکنون پیشنهاد می کنم روی نام سطل کلیک کنید و یک پوشه در داخل آن ایجاد کنید تا ذخیره سازی تصاویر را برای برنامه های مختلف سازماندهی کنید. مثلا برای ربات تلگرام افکار هوشمند من یک پوشه ایجاد کردم به نام tg-bot-smart-thoughts (هیچی، من این رمز را متوجه خواهم شد). یکی هم ایجاد کن

ساخت ربات تلگرام در Yandex.Cloud

حالا می توانید روی نام پوشه کلیک کنید، وارد آن شوید و فایل ها را آپلود کنید:

ساخت ربات تلگرام در Yandex.Cloud

و روی نام فایل کلیک کنید - آن را دریافت کنید URL برای استفاده در ربات ما، و به طور کلی - در هر کجا (اما، این را منتشر نکنید URL غیر ضروری، زیرا ترافیک از ذخیره سازی اشیا متهم).

ساخت ربات تلگرام در Yandex.Cloud

اینجا، در واقع، همه چیز همین است ذخیره سازی اشیا. اکنون می‌دانید که وقتی درخواست آپلود فایل‌ها را در آنجا می‌بینید، چه کاری باید انجام دهید.

وب هوک

حالا ما نصب می کنیم وب هوک - یعنی هنگامی که ربات یک به روز رسانی (مثلاً پیامی از طرف کاربر) از سرور دریافت می کند تلگرام به ما تابع Yandex درخواست ارسال خواهد شددرخواست) با داده ها در اینجا رشته‌ای وجود دارد که می‌توانید به سادگی آن را در فیلد آدرس مرورگر قرار دهید، و سپس صفحه را بازخوانی کنید (این کار فقط یک بار باید انجام شود): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
فقط تعویض کنید {bot_token} به نشانه ای که هنگام ایجاد ربات خود از ربات پدر دریافت کردیم و {webhook_url} - بر URL ما توابع Yandex. یک دقیقه صبر کن! ولی سانسور RossKom ارائه دهندگان در فدراسیون روسیه را از ارائه آدرس منع می کند https://api.telegram.org. بله درست است. اما شما می توانید به چیزی فکر کنید. از این گذشته ، برای مثال ، می توانید از مادربزرگ خود در اوکراین ، اسرائیل یا کانادا در مورد آن بپرسید - در آنجا "سانسورهای روسی" وجود ندارد و فقط خدا می داند که مردم بدون آن چگونه زندگی می کنند. در نتیجه، درخواست پاسخ هنگام نصب webhook باید به شکل زیر باشد:

ساخت ربات تلگرام در Yandex.Cloud

آزمایش کردن. باید آینه شود.

ساخت ربات تلگرام در Yandex.Cloud

درست است. تبریک ما - اکنون تابع Yandex تبدیل شده است تلگرام-ربات!

افکار هوشمند

و اکنون ما افکار هوشمند را انجام می دهیم. کد باز است و روشن است GitHub. خیلی خوب نظر داده شده است و فقط صد خط است. آن را مانند یک لیبرتو دیوای اپرا بخوانید!

ساخت ربات تلگرام در 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.

ساخت ربات تلگرام در Yandex.Cloud

حالا به کنسول ما بروید توابع Yandex، برگه را انتخاب کنید آرشیو ZIP، دکمه را فشار دهید یک فایل را انتخاب کنیدو آرشیو ما را دانلود کنید smart.zip. در نهایت، در گوشه سمت راست بالا، روی دکمه کلیک کنید ایجاد نسخه.

ساخت ربات تلگرام در Yandex.Cloud

پس از چند ثانیه، هنگامی که عملکرد به روز شد، ما دوباره ربات خود را آزمایش می کنیم. اکنون او دیگر "آینه" نیست، بلکه افکار هوشمندانه را ارائه می دهد!

ساخت ربات تلگرام در Yandex.Cloud

برای امروز کافی است. مقالات دیگر در ادامه می آید. اگر علاقه مند به خواندن این هستید، در اطلاعیه های مقالات جدید مشترک شوید. می توانید در اینجا مشترک شوید یا تلگرام-کانال آموزش فناوری اطلاعات زاخاریا توییتر @mikezaharov.

مراجع

کد در GitHub
توابع ابر یاندکس
ذخیره سازی اشیاء Yandex
ربات ها: مقدمه ای برای توسعه دهندگان
API ربات تلگرام

کمک های مالی

ساخت ربات تلگرام در Yandex.Cloud

منبع: www.habr.com

اضافه کردن نظر