امروز از مواد بداهه جمع آوری می کنیم https://api.telegram.org/
. خوب، ما نخواهیم کرد - نه، نه. در واقع، در کیف ما به اصطلاح وجود دارد. وب هوک ها - با کمک آنها، ما درخواستی را به آدرس خاصی ارائه نمی کنیم، بلکه فقط درخواست خود را به عنوان پاسخ به هر درخواستی برای ما ارسال می کنیم. یعنی همانطور که در اودسا - ما به یک سوال با یک سوال پاسخ می دهیم. از همین رو API تلگرام در کد ما ظاهر نمی شود.
سلب مسئولیتنام هر سازمان دولتی ذکر شده در این مقاله ساختگی است و همزمانی احتمالی با نام سازمان های واقعی تصادفی است.
بنابراین، ما یک ربات می سازیم که افکار هوشمندانه را در اختیار ما قرار می دهد. دقیقا مثل عکس:
می توانید آن را در عمل امتحان کنید - این نام است: @SmartThoughtsBot. به دکمه توجه کنید "مهارت آلیس"? این به این دلیل است که ربات نوعی "همدم" برای همنام است مهارت آلیس، یعنی همان توابع را انجام می دهد مهارت آلیس و شاید بتوان همزیستی مسالمت آمیزی برای یکدیگر داشته باشد. درباره نحوه ایجاد مهارت تفکر هوشمند در مقاله شرح داده شده است
ایجاد ربات
من دوست دارم این آموزش برای همه مفید باشد، از جمله. و مبتدی "سازندگان ربات". بنابراین، در این بخش به طور کلی نحوه ایجاد را با جزئیات توضیح خواهم داد تلگرامربات ها برای کسانی که به این اطلاعات نیاز ندارند، به بخش های بعدی بروید.
برنامه را باز کنید تلگرام، ما به پدر همه ربات ها می گوییم (آنها همه چیز را مانند مردم دارند) - BotFather - و برای شروع، دستور / help را به او می دهیم تا حافظه ما را از کارهایی که می توانیم انجام دهیم تازه کند. اکنون به تیم علاقه مند هستیم / newbot.
از آنجایی که ربات توضیح داده شده در اینجا قبلا ایجاد شده است، برای اهداف نمایشی، من یک ربات دیگر را برای مدت کوتاهی ایجاد خواهم کرد (سپس آن را حذف خواهم کرد). بهش زنگ میزنم DemoHabrBot. نام ها (نام کاربری) تمام ربات های تلگرام باید با یک کلمه ختم شوند ربات، برای مثال: MyCoolBot یا my_cool_bot این برای ربات ها است. اما ابتدا به ربات یک نام بدهید (نام) برای مردم است. نام می تواند به هر زبانی باشد، حاوی فاصله باشد، لازم نیست با یک کلمه تمام شود ربات، و حتی لازم نیست منحصر به فرد باشد. در این مثال من این ربات را صدا زدم دمو هابر.
حالا یک نام برای ربات انتخاب کنید (نام کاربری، یکی برای ربات ها). بیایید آن را صدا کنیم DemoHabrBot. همه چیز مربوط به نام ربات (نام) اصلا به اسمش مربوط نیست - نام کاربری (یا اعمال می شود، اما دقیقا برعکس). پس از ایجاد موفقیت آمیز یک نام ربات منحصر به فرد، باید رمز نشان داده شده در اسکرین شات را با یک فلش قرمز کپی و ذخیره کنیم (در نهایت اطمینان!). با کمک آن، ما بعداً خروجی را نصب خواهیم کرد تلگرامیک وب هوک برای ما تابع Yandex.
و اکنون دستور را به پدر همه ربات ها می دهیم: /mybotsو لیستی از تمام ربات هایی که ایجاد کرده ایم به ما نشان می دهد. بیایید ربات تازه پخته را فعلا به حال خود رها کنیم دمو هابر (برای نشان دادن نحوه ایجاد ربات ایجاد شده است، اما امروز از آن برای اهداف نمایشی دیگر استفاده خواهیم کرد) و ربات را در نظر بگیرید افکار هوشمند (@SmartThoughtsBot). روی دکمه با نام آن در لیست ربات ها کلیک کنید.
اینجاست که می توانیم ربات خود را راه اندازی کنیم. فشار دادن یک دکمه ویرایش ... ما به سمت ویرایش یک یا گزینه دیگر خواهیم رفت. به عنوان مثال، با کلیک بر روی دکمه ویرایش نام ما می توانیم نام ربات را تغییر دهیم، به جای آن بگوییم افکار هوشمند، نوشتن ایده های دیوانه کننده. Botpic - این آواتار ربات است، حداقل باید باشد 150 X 150 PX. توضیحات: توضیح کوتاهی است که کاربر هنگام راه اندازی ربات برای اولین بار می بیند، به عنوان پاسخ به این سوال: این ربات چه کاری می تواند انجام دهد؟ درباره ما - یک توضیح حتی کوتاه تر، که با پیوند به ربات منتقل می شود (https://t.me/SmartThoughtsBot
) یا هنگام مشاهده اطلاعات مربوط به آن.
ما فقط باید دستورات را تنظیم کنیم. برای انجام این کار، دکمه را فشار دهید دستورات را ویرایش کنید. برای استاندارد کردن شیوه های کاربر تلگرام توصیه می کند همیشه از دو دستور استفاده کنید: / شروع کنید и / کمک، و اگر ربات به تنظیمات نیاز دارد - یک دستور /settings اضافی. ربات ما به سادگی یک توپ است، بنابراین هنوز نیازی به تنظیمات ندارد. دو دستور اول را می نویسیم که سپس در کد پردازش می کنیم. حال اگر کاربر یک اسلش (کاراکتر اسلش: /) را در قسمت ورودی وارد کند، لیستی از دستورات برای انتخاب سریع او ظاهر می شود. همه چیز مانند تصویر است: در سمت چپ - ما دستورات را از طریق ربات پدر تنظیم می کنیم. در سمت راست، این دستورات در حال حاضر در ربات ما در دسترس کاربران هستند.
تابع Yandex
حالا که ربات ما ایجاد شد، بیایید به Yandex.Cloudبرای ایجاد تابعی که کد ربات ما را اجرا می کند. اگر با آن کار نکرده اید Yandex.Cloud مطالب را بخوانید
بنابراین در کنسول Yandex.Clouds در منوی ناوبری سمت چپ، مورد را انتخاب کنید توابع ابرو سپس دکمه را فشار دهید یک تابع ایجاد کنید. ما به آن نام می دهیم، و برای خودمان - شرح مختصری.
پس از فشار دادن دکمه ساختن و پس از چند ثانیه، تابع جدید در لیست تمام توابع ظاهر می شود. روی نام او کلیک کنید - این ما را به صفحه می برد مرور عملکرد ما در اینجا باید فعال کنیدOn) تعویض عملکرد عمومیبرای در دسترس قرار دادن آن از خارج (برای Yandex.Clouds) از جهان، و ارزش زمینه ها لینک تماس и مشخص کننده - آن را از همه به جز خود و تلگرام مخفی نگه دارید تا کلاهبرداران مختلف نتوانند عملکرد شما را فراخوانی کنند.
حالا با استفاده از منوی سمت چپ به سردبیر کارکرد. یک لحظه خودمان را کنار بگذاریم افکار هوشمند، و یک تابع قالب حداقل برای بررسی عملکرد ربات خود ایجاد کنید ... با این حال ، در این زمینه ، این تابع ربات ما است ... به طور خلاصه ، اکنون و همینجا ساده ترین رباتی را می سازیم که "آینه" می شود ( یعنی ارسال مجدد ) درخواست های کاربر. این قالب همیشه می تواند هنگام ایجاد ربات های جدید تلگرام استفاده شود تا از ارتباط با آن مطمئن شوید تلگرام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، باید چیزی شبیه به این باشد:
در زیر نشان می دهیم نقطه ورود - index.botجایی که شاخص این نام فایل (index.js)، آ ربات - نام تابع (module.exports.bot). تمام فیلدهای دیگر را "همانطور که هستند" بگذارید و در گوشه سمت راست بالای دکمه روی دکمه کلیک کنید ایجاد نسخه. پس از چند ثانیه، این نسخه از تابع ایجاد خواهد شد. به زودی پس از آزمایش وب هوک، ما یک نسخه جدید ایجاد خواهیم کرد - افکار هوشمند.
ذخیره سازی اشیا
حالا که راه اندازی کردیم تابع Yandexتا زمانی که در کنسول هستیم، بریم Yandex.Clouds، ایجاد به اصطلاح. سطل (سطل، یعنی سطل به زبان روسی، به هیچ وجه یک دسته گل) برای ذخیره فایل های تصویری که در ربات ما استفاده می شود افکار هوشمند. از منوی ناوبری سمت چپ انتخاب کنید ذخیره سازی شی، دکمه را فشار دهید سطل ایجاد کنید، برای مثال یک نام به آن بدهید img-bucketو از همه مهمتر خواندن دسترسی به اشیاء آن را عمومی کنید - در غیر این صورت تلگرام تصاویر ما را نخواهد دید. همه فیلدهای دیگر بدون تغییر باقی می مانند. دکمه را فشار می دهیم سطل ایجاد کنید.
پس از آن، فهرستی از همه سطل ها ممکن است چیزی شبیه به این باشد (اگر این تنها سطل شما باشد):
اکنون پیشنهاد می کنم روی نام سطل کلیک کنید و یک پوشه در داخل آن ایجاد کنید تا ذخیره سازی تصاویر را برای برنامه های مختلف سازماندهی کنید. مثلا برای ربات تلگرام افکار هوشمند من یک پوشه ایجاد کردم به نام tg-bot-smart-thoughts (هیچی، من این رمز را متوجه خواهم شد). یکی هم ایجاد کن
حالا می توانید روی نام پوشه کلیک کنید، وارد آن شوید و فایل ها را آپلود کنید:
و روی نام فایل کلیک کنید - آن را دریافت کنید URL برای استفاده در ربات ما، و به طور کلی - در هر کجا (اما، این را منتشر نکنید URL غیر ضروری، زیرا ترافیک از ذخیره سازی اشیا متهم).
اینجا، در واقع، همه چیز همین است ذخیره سازی اشیا. اکنون میدانید که وقتی درخواست آپلود فایلها را در آنجا میبینید، چه کاری باید انجام دهید.
وب هوک
حالا ما نصب می کنیم وب هوک - یعنی هنگامی که ربات یک به روز رسانی (مثلاً پیامی از طرف کاربر) از سرور دریافت می کند تلگرام به ما تابع 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 تبدیل شده است تلگرام-ربات!
افکار هوشمند
و اکنون ما افکار هوشمند را انجام می دهیم. کد باز است و روشن است
پروژه را کلون کنید و وابستگی ها را نصب کنید:
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. در نهایت، در گوشه سمت راست بالا، روی دکمه کلیک کنید ایجاد نسخه.
پس از چند ثانیه، هنگامی که عملکرد به روز شد، ما دوباره ربات خود را آزمایش می کنیم. اکنون او دیگر "آینه" نیست، بلکه افکار هوشمندانه را ارائه می دهد!
برای امروز کافی است. مقالات دیگر در ادامه می آید. اگر علاقه مند به خواندن این هستید، در اطلاعیه های مقالات جدید مشترک شوید. می توانید در اینجا مشترک شوید یا تلگرام-کانال
مراجع
کمک های مالی
منبع: www.habr.com