• نحوه ایجاد گروه در ربات مخاطب چگونه در پنج دقیقه به تنهایی یک ربات بسازیم

    ربات ها در پیام رسان ها ترند این فصل هستند. آنها اعلان ها و اخبار را ارسال می کنند، مراکز تماس را جایگزین می کنند، بازی می کنند، به طور کلی، انواع خدمات را در قالب چت ادغام می کنند.

    شما می توانید ربات خود را در چند دقیقه ایجاد کنید، و گاهی اوقات می توانید بدون دانستن زبان های برنامه نویسی این کار را انجام دهید.

    در پیام رسان تلگرامیک ربات ویژه برای ایجاد ربات ها و مدیریت ربات های ایجاد شده وجود دارد - @BotFather. فقط شروع کنید به صحبت کردن با او و پیروی از دستورات، چند قدم ساده بردارید.

    در کادر محاوره ای بنویسید / newbot برای ایجاد یک ربات جدید @BotFather می پرسد ربات جدید چه نامی دارد و از چه نام کاربری استفاده می کند (نام همه ربات ها در تلگرام باید با "bot" ختم شود). سپس او پیشنهاد می دهد تا شرحی از قابلیت های ربات و یک userpic اضافه کند و همچنین یک توکن منحصر به فرد صادر کند که در پیکربندی و عملکرد بیشتر ربات مفید خواهد بود.

    همه چیز، ربات آماده است.

    • چت سوخت - این سرویس بود که به ناشران کمک کرد تا ربات های خود را بسازند فوربس و TechCrunch و سرمایه گذاری را از Yandex جذب کرد. با آن می توانید یک ربات برای تلگرام و پیام رسان فیسبوکو در آینده برای Slack، Kik، WhatsApp و Viber. سرویس راه اندازی ربات شما در حالت ارتباط با ربات @Chatfuelbot نیز کار می کند. تا کنون، این همه رایگان است.
    • api.ai - سرویسی برای ایجاد ربات های چت برای Facebook Messenger و Slack. ربات را وصل کنید و از طریق رابط وب، دستورات و واکنش‌ها را به پیام‌های کاربر، پر کردن و ویرایش تنظیم کنید فرم گام به گام. این ابزار رایگان است تا زمانی که ربات شما کمتر از 6000 بازدید در ماه دریافت کند. سپس باید یک اشتراک بخرید - از 89 دلار در ماه.
    • میا - سرویس دیگری برای ایجاد ربات، با تلگرام، اسلک، کیک، فیس بوک مسنجر، توییتر و غیره کار می کند. ارائه هاست برای ربات ها، پایگاه داده ها، چارچوبی برای درک گفتار طبیعی کاربر، ابزارهای یکپارچه سازی و غیره.

    و اگر از سایت مشترک ربات نشده اید، وقت آن است که این کار را انجام دهید! @iPhonesRu_Bot

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

    دو راه برای ایجاد ربات وجود دارد. اولی نوشتن برنامه با استفاده از API تلگرام و دومی استفاده از سرویس برای ایجاد ربات. یکی از اینها، manybot.io، ما در مقاله استفاده خواهیم کرد.

    تلگرام را نصب کنید

    دستورالعمل های موجود در مقاله را می توان در ادامه مطلب دنبال کرد نسخه های تلگرامبرای هر پلت فرم:

    • Windows/Linux/OS X (لینک نسخه را برای آن باز می کند سیستم عاملکه با آن نشسته ای)

    من خودم از نسخه برای OS X استفاده خواهم کرد، زیرا ایجاد یک ربات بدون صفحه کلید کامل بسیار راحت نیست.

    یک ربات ایجاد کنید

    1. در جستجو عبارت Manybot را تایپ می کنیم، روی آیکون ربات کلیک کرده و روی دکمه کلیک می کنیم شروع کنید:

    2. روی دکمه کلیک کنید یک ربات جدید اضافه کنید:

    4. برو به @BotFather، دکمه را فشار دهید شروع کنیدو دستور را وارد کنید /newbot:

    6. نام رباتی که در حین جستجو نمایش داده می شود و نام فنی ربات را وارد کنید، توکن API دریافتی را کپی کنید:

    7. به @Manybot برگردید و توکن API را از کلیپ بورد در آن قرار دهید:

    8. توضیحات ربات را مشخص کنید:

    9. ربات آماده است:

    10. ربات خود را از طریق جستجو پیدا کنید و شروع به استفاده از:

    ما تیم خود را ایجاد می کنیم

    که در ربات خوبدستورات باید باشد. به طوری که کاربر درخواستی را وارد می کند و در پاسخ چیزی جالب / مفید دریافت می کند. در اینجا یک دستورالعمل در مورد نحوه ایجاد یک دستور ساده است:

    1. استخدام کنید / دستورات:


    2. نام دستور جدید و متنی که در پاسخ صادر می کند را تایپ می کنیم (در صورت تمایل می توان فایل ها را به متن پیوست کرد):


    3. دکمه را فشار دهید صرفه جوییو منتظر بمانید تا ایجاد دستور تکمیل شود:

    برای ویرایش یک دستور /سلامنیاز به شماره گیری / دستورات, /سلام:

    برای مشاهده پاسخ دستور باید روی دکمه کلیک کنید نمایش فرمان. متأسفانه، من راهی برای بررسی نحوه ظاهر ربات در برنامه برای مشترکین پیدا نکردم، به جز اینکه از کسی بخواهم از حساب خود وارد شود و ببیند:

    افزودن یک آیتم به منو

    در صورت تمایل، برای دستور، می توانید دکمه ای را در منو ایجاد کنید که آن را اجرا می کند.

    1. استخدام کنید / دستورات:

    2. روی دکمه کلیک کنید منوی اصلی را سفارشی کنیدو سپس روی دکمه افزودن آیتم منو:

    3. از لیست دستوری را که می خواهیم به منو اضافه کنیم انتخاب کرده و نام دکمه را مشخص کنید:

    ارسال خودکار از شبکه های اجتماعی را فعال کنید

    ربات ها را می توان برای پخش اخبار از توییتر، یوتیوب، VK یا RSS پیکربندی کرد.

    1. جذب یک تیم / ارسال خودکار:


    2. دکمه را با شبکه اجتماعی مورد نظر فشار دهید و پیوند صفحه را نشان دهید:

    یک پست برنامه ریزی شده ایجاد کنید

    در ربات های تلگرام می توانید پیام هایی ارسال کنید که برای همه مشترکین آن ارسال می شود. در اینجا یک دستورالعمل در مورد نحوه ایجاد چنین پیامی و برنامه ریزی برای ارسال آن در یک زمان خاص وجود دارد:

    1. جذب یک تیم /مطلب جدید:


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


    3. زمان ارسال پست را مشخص کنید و پست را ذخیره کنید:

    ما داده ها را جمع آوری می کنیم

    با کمک ربات ها می توانید نظرسنجی هایی را در بین مشترکین انجام دهید:

    1. استخدام کنید / دستورات، مورد منو را انتخاب کنید یک تیم ایجاد کنیدو یک نام برای دستور جدید وارد کنید:

    2. روی دکمه کلیک کنید یک سوال اضافه کنید، نوع پاسخ را انتخاب کرده و متن سوال را وارد کنید:

    بنابراین در این مقاله نحوه ایجاد یک ربات ساده بر اساس جستجوی بصری اشیاء روی صفحه را نشان خواهم داد. مزیت - فایده - سود - منفعت این روش"نامرئی" به است سیستم های مختلفحفاظت از ربات برای نوشتن یک ربات، طبیعتاً از یک محیط تخصصی برای توسعه ربات ها استفاده خواهیم کرد. اگر ربات ها به منظور صرفه جویی در وقت شما برای انجام کارهای روتین تکراری ایجاد شده اند، NOMAD به منظور صرفه جویی در وقت شما هنگام نوشتن ربات ایجاد می شود. در مقایسه با نوشتن ربات ها در محیط های برنامه نویسی غیر تخصصی یا نه چندان تخصصی، توسعه در NOMAD می تواند ده ها یا حتی صدها برابر سریعتر باشد. (زیرا شما هنوز باید ابزارهای تشخیص اشیا را که از قبل در NOMAD ساخته شده اند، برای شروع توسعه دهید). با استفاده از این لینک می توانید کیت توزیع NOMAD را با ربات نصب شده از این مقاله دانلود کنید (توجه کنید، تنظیمات برنامه در کیت توزیع به گونه ای طراحی شده است که آن را در پوشه پیش فرض نصب کنید، اگر آن را در مکان دیگری نصب کنید، مسیرها را تغییر دهید. به پایگاه داده و سازنده با پخش کننده!)

    adminbot
    تاریخ: 22.07.2015

    مدیریت کثیر مانند مدیریت تعداد معدودی است. این در مورد سازمان است.

    سان تزو

    وظیفه ما اکنون این است که نشان دهیم یک برنامه ربات چگونه ساخته می شود و بنابراین برای اتوماسیون چیزی ساده و در عین حال قابل دسترسی برای همه انتخاب می کنیم، به عنوان مثال، یک ماشین حساب. البته، این یک بازی آنلاین نیست، اما باور کنید، ایجاد یک ربات برای بازی های آنلاینتفاوتی ندارد (توجه کنید، مثال در ویندوز 8 و ویندوز 7 کار می کند و ماشین حساب باید مانند تصویر زیر باشد، به عنوان مثال، در ویندوز XP ماشین حساب فراخوانی می شود و به نظر متفاوت است و بنابراین ربات در آنجا کار نمی کند)

    برای شروع بازی "خودکار" چیزی، باید مراحل زیر را طی کنیم:

    1. یک کار را برای خود فرموله کنید. ربات ما باید به چه اهدافی برسد.
    2. او برای رسیدن به این هدف باید چه اقداماتی را انجام دهد؟
    3. بر اساس وظیفه، تعیین کنید که او باید کدام اشیاء را ببیند، و چگونه، و به کدام رویدادها باید واکنش نشان دهد تا به اهداف شرح داده شده در بند 1 دست یابد.
    4. ایجاد یک الگوریتم.
    5. برنامه نويسي.

    وظیفه ربات ما اضافه کردن بی پایان 2 عدد 59 و 3 بر روی ماشین حساب خواهد بود.

    برای رسیدن به هدفمان نیاز داریم که برنامه ما دکمه های 5 و 9 ماشین حساب را فشار دهد و در صورت موفقیت آمیز بودن دکمه + و دکمه 3 و سپس دکمه =

    بنابراین، ما باید به دنبال این اشیاء در تصویر بگردیم و سپس آنها را با ماوس فشار دهیم. همچنین عدد 59 و عدد 0 را در فیلد نتیجه و همچنین دکمه CE تجزیه و تحلیل خواهیم کرد تا قبل از شروع تکرار بعدی، محاسبات را به 0 برگردانیم.

    بنابراین الگوریتم ما این است: حلقه بی پایانابتدا جستجو می کنیم و روی دکمه 5 و روی دکمه 9 کلیک می کنیم. در صورت موفقیت، 3 ثانیه مکث می کنیم (تا زمانی که از نتیجه لذت ببریم). سپس بررسی می کنیم که آیا تصویری از عدد 59 داریم، اگر وجود دارد، سپس دکمه های + و 3 ماشین حساب را پیدا کرده و روی آن کلیک می کنیم، اگر این عملیات نیز با موفقیت انجام شد، سپس دکمه = را پیدا کرده و روی آن کلیک می کنیم. ماشين حساب. سپس 5 ثانیه می خوابیم. سپس بررسی می کنیم که آیا تصویر 0 در فیلد نتیجه وجود ندارد، سپس باید دکمه CE را فشار دهید تا نتایج محاسبات قبلی بازنشانی شود. سپس تکرار تکرار می شود. با زدن دکمه Esc برنامه متوقف می شود.

    بیایید کد برنامه ای را که به دست آوردیم نشان دهیم:

    دلفی/پاسکال

    StartProcedureOnClick(); شروع در حالی که (getasynckeystate($1B) = 0) انجام //حلقه ادامه می یابد تا زمانی که Esc++ فشار داده شود شروع می شود اگر پنج.MouseClick("l") و nine.MouseClick("l") سپس //اگر پنج و 9 با موفقیت فشرده شدند، پس شروع خواب (3000)؛ //3 ثانیه بخوابید اگر fiftynine.FindPicture سپس //اگر 59 را پیدا کردیم، سپس 3 را به آنها اضافه کنید: اگر plus.MouseClick("l") و three.MouseClick("l") سپس //اگر موفق شدیم بعلاوه 3 را فشار دهید، سپس روی equal.MouseClick("l"); پایان؛ پایان؛ خواب (5000); //اگر صفر نیست برای 5 ثانیه بخوابید.FindPicture سپس //اگر صفر در جدول امتیازات وجود ندارد CE.MouseClick("l"); //سپس روی CE Application.ProcessMessages کلیک کنید؛//پیام هایی را که در حین کار به پنجره آمدند به اجبار پردازش می کند، برای مثال //پیام را فشار دهید کلیدهای Esc. اگر با آن تماس نگیرید، //برنامه ممکن است "یخ بزند"، به فشردن Esc و غیره پاسخ بدی بدهد. پایان؛ //حلقه تا فشار دادن Esc ادامه می یابد -- ShowMessage("برنامه متوقف شد!"); پایان؛

    StartProcedureOnClick();

    شروع

    در حالی که (getasynckeystate($1B) =0) انجام دهید //حلقه تا فشار دادن Esc++ ادامه می یابد

    شروع

    اگر پنج . MouseClick ("l") و نه . سپس ماوس را کلیک کنید ("l"). // اگر پنج و 9 با موفقیت فشرده شوند، آنگاه

    شروع

    خواب (3000); //خواب 3 ثانیه

    اگر پنجاهنین . سپس FindPicture //اگر 59 پیدا کردیم، 3 را به آنها اضافه کنید:

    شروع

    اگر بعلاوه . MouseClick("l") و سه. سپس ماوس را کلیک کنید ("l"). //اگر معلوم شد که به علاوه 3 را فشار دهید، سپس برابر را فشار دهید

    برابر . MouseClick("l");

    پایان ؛

    پایان ؛

    خواب (5000) ; //خواب 5 ثانیه

    اگر نه صفر . سپس FindPicture //اگر در جدول امتیاز صفر وجود نداشته باشد

    C.E. MouseClick("l"); //سپس CE را فشار دهید

    کاربرد. فرآیند پیام ها؛ // پردازش نیرو

    برای مثال //پیام هایی که پنجره در حین کار دریافت می کند

    //پیام در مورد فشار دادن کلید Esc. اگر نه پس تماس بگیرید

    //برنامه ممکن است "یخ بزند"، به فشردن Esc و غیره واکنش بدی نشان دهد.

    پایان ؛ //حلقه تا فشار دادن Esc ادامه می یابد --

    ShowMessage( "برنامه متوقف شد!") ;

    پایان ؛

    در اینجا ما کمی جلوتر دویدیم و بلافاصله کد را نوشتیم، زیرا. در NOMAD ابتدا باید الگوهای تصویر مورد نظر خود را ایجاد کنیم. بنابراین اگر به کد نگاه کنید، می توانید ورودی های زیر را ببینید: پنج، نه، پنجاهنین، به علاوه، سه، مساوی، صفر، CE - چیست؟ و اینها در واقع همان الگوها هستند، در NOMAD می توانید از روی کد مانند اشیاء با آنها کار کنید. نام شی را در کد می نویسیم و متد آن را فرا می خوانیم، به عنوان مثال: FindPicture - تصویر الگو را پیدا کنید، MouseClick('l') - تصویر الگو را پیدا کنید و روی آن کلیک چپ کنید. برای مطالعه دقیق قابلیت ها و کارکردهای NOMAD توصیه می کنم به ادامه مطلب مراجعه فرمایید. و اکنون به طور خلاصه توضیح خواهم داد که چگونه الگوهای از دست رفته را ایجاد می کنیم:

    ابتدا بیایید یک پایگاه داده ایجاد کنیم، برای این کار دکمه ADD را در Launcher فشار دهید، در پنجره باز شده نام پایگاه داده را در قسمت اول پر کنید (مثلا Calculator) و در قسمت دوم، دایرکتوری که می خواهیم هر چیزی را که برنامه ریزی کرده ایم در آن ذخیره کنیم. آن ها کد منبع واقعی برنامه ما یا به عبارت دیگر پایگاه داده. بعد، روی دکمه ذخیره کلیک کنید و باید یک ورودی در لیست داشته باشیم. آن را انتخاب کرده و دکمه Constructor را فشار دهید.

    ثانیاً، شما باید این خط لوله اسکرین شات را ایجاد و پیکربندی کنید، شیئی که در مورد ما، پنجره ماشین حساب، مسئول عکس گرفتن از پنجره است. بنابراین، برنامه را در حالت Constructor باز می کنیم، در پنجره ای که در سمت راست باز می شود باید تصویر زیر را مشاهده کنیم:

    در موردی که در تصویر مشخص شده است رنگ آبیراست کلیک کرده و از منو گزینه "Add Screenshot Conveyor" را انتخاب کنید. در پنجره ای که ظاهر می شود، نام آن را مشخص کنید - "Calc". و دکمه Input را فشار دهید. پس از آن، یک شی با همان نام باید در درخت شی در قسمت ScreenShotPipe ظاهر شود. آن را در آنجا پیدا کنید و با دکمه سمت چپ ماوس روی آن کلیک کنید. پنجره زیر در سمت چپ برنامه ظاهر می شود (ممکن است ویژگی ها به ترتیب متفاوت ظاهر شوند):

    من قبلاً آن را همانطور که برای شما باید به نظر برسد پر کرده ام. در واقع همه چیز از قبل مشخص شده است، فقط باید در قسمت WindName کلمه Calculator را بنویسید. تمام خط لوله آماده است و ما می توانیم شروع به ایجاد الگو کنیم، جایی که من به شما خواهم گفت که چرا اصلاً این خط لوله را ساخته ایم.

    ثالثاً ما ماشین حساب را راه اندازی می کنیم و از آن عکس می گیریم، برای عکس گرفتن باید دکمه ScreenShot را در سمت چپ فشار دهید. گوشه بالاییسازنده. پس از آن، ما یک پنجره تلویزیون با یک اسکرین شات خواهیم داشت. حالا باید دکمه Cut را فشار دهیم و ماشین حساب خود را در پنجره تلویزیون انتخاب کنیم، نتیجه این اقدامات باید یک پنجره تلویزیون با تصویر ماشین حساب باشد.

    روی دکمه Borders کلیک کنید ( توجه داشته باشید. از زمانی که این مقاله نوشته شده است، حالت FixBorders در برنامه ظاهر شده است (دکمه مانیتور مشکی با ماه)، توصیه می کنم از آن استفاده کنید. از آن مانند Borders استفاده می شود، اما روی تصاویر پویا بسیار پایدارتر عمل می کند.) و شروع به ساخت قالب کنید. من توضیح خواهم داد که چگونه این کار با استفاده از الگوی دکمه "+" به عنوان مثال انجام می شود - ما باید مشخص ترین بخش تصویر را که در مکان های دیگر تکرار نمی شود انتخاب کنیم. در واقع، ما خود نماد + را انتخاب می کنیم، دکمه Select را فشار می دهیم و این علامت را در یک کادر انتخاب می کنیم:

    داخل مربع نقطه چین کلیک راست می کنیم و پنجره ای ظاهر می شود:

    در فیلدی که نام آن را "plus" می نویسیم (از آنجایی که این شی در کد ما نوشته شده است) و Input را فشار می دهیم. در قسمت Templates درخت آبجکت، یک شی با این نام داریم. روی آن کلیک کنید و پنجره ای که قبلا برای ما آشناست در سمت چپ ظاهر می شود:

    در اینجا باید ویژگی ConnectedScreen را در آن تغییر دهیم، باید خط لوله اسکرین شات را که در ابتدا ایجاد کردیم انتخاب کنیم، زیرا. به طور پیش فرض، نوار نقاله جهانی در اینجا انتخاب می شود که از کل دسکتاپ عکس می گیرد و نه فقط ماشین حساب ما. این حداقل سفارشی سازی قالب را تکمیل می کند و فکر می کنم این برای ما کافی باشد. جزئیات بیشتر در مورد این را می توان در اسناد یافت. شما فقط باید همین کار را با تمام اشیاء دیگری که باید به قالب ها اضافه کنیم، انجام دهید. پس از اضافه کردن تمام قالب ها، درخت شی باید به شکل زیر باشد:

    بسیار مهم است که نام ها، از جمله مورد ورودی، دقیقاً با آنچه در تصویر می بینید مطابقت داشته باشد. در مثال، قالب های پنج و نه به روشی متفاوت ساخته شده اند، در حالت ColMap، برای جزئیات نحوه انجام این کار، پیشنهاد می کنم به مستندات مراجعه کنید. تاثیر چندانی روی کار کد برنامه نخواهد داشت و می توانید تمام قالب ها را مانند قالب دکمه + بسازید. یا نمی توانید کاری انجام دهید و یک کیت توزیع آماده را با یک مثال دانلود کنید

    برای ایجاد قالب های پنجاه و صفر، باید برای قسمت ماشین حساب که در تصویر مشخص شده است، یک الگو بسازید:

    همه قالب ها

    3) ما همچنین نیاز به ایجاد رابط کاربری گرافیکیبرنامه ای که از طریق آن با کاربر ارتباط برقرار می کند. برای این کار در برنامه Designer وارد منوی "Windows" شده و مورد "Form Designer" را انتخاب کنید.

    پنجره ای با فرمی باز می شود که باید روی آن دوبار کلیک کنید و از پنجره باز شده یک شی Button در هر دو فیلد فرم اضافه کنید و Start را بنویسید. روی OK کلیک کنید و از فرم خارج شوید و در فرم اصلی یک دکمه Start داریم، روی آن کلیک کنید و دوباره منوی خواص ظاهر می شود، روی تب Events کلیک کنید و موارد زیر را مشاهده کنید:

    در ستون Value در مقابل رویداد OnClick، دوبار کلیک کنید، و مقدار در تصویر بالا به طور خودکار در مقدار پر می شود. و یک ویرایشگر متن در پنجره مرکزی ظاهر می شود:

    این متنی است که باید با کدی که در ابتدای مقاله دادم جایگزین کنیم. اکنون برنامه آماده است. برای شروع باید برنامه را با فشردن دکمه ای که تصویر دو فلاپی دیسک دارد ذخیره کنید، سپس با فشردن دکمه ای که تصویر پیچ گوشتی و آچار ضربدری دارد برنامه را کامپایل کنید و سپس دکمه Launch را فشار دهید یا آن را اجرا کنید. پرتاب کننده از سازنده، برنامه همیشه در حالت اشکال زدایی اجرا می شود، بنابراین پیام های اشکال زدایی نمایش داده می شود. اگر همه کارها را درست انجام دادیم، باید پنجره ای با دکمه ای که ایجاد کرده بودیم ببینیم:

    ما ماشین حساب را راه اندازی می کنیم، آن را روی دسکتاپ قابل مشاهده می کنیم و دکمه شروع را فشار می دهیم. وقتی خسته شدید فشار دهید دکمه Escو منتظر پیامی مبنی بر پایان برنامه باشید.

    همین. دشوار؟ انجام این کار در یک زبان برنامه نویسی معمولی بسیار دشوارتر است. شخصاً برای نوشتن این ربات بیش از نیم ساعت طول نکشید که نمی توانم در مورد این مقاله بگویم.

    نمونه های دیگری از ربات ها را می توان در انجمن جستجو کرد، به عنوان مثال،

    ساخت یک ربات ساده برای ارسال اخبار به کانال و پاسخگویی خودکار به سوالات در 6 مرحله.

    به نشانک ها

    مواد با پشتیبانی تهیه شد

    پس از بحث های داغ در مطبوعات فناوری اطلاعات در مورد اثربخشی چت بات ها، آنها جای خود را در اکوسیستم کاربران و شرکت ها باز کرده اند. به عنوان مثال، اغلب پروژه‌ها ربات‌ها را برای اطلاع‌رسانی در مورد هر رویدادی پیاده‌سازی می‌کنند و خدمات پشتیبانی از آن‌ها برای پاسخ سریع به سؤالات متداول مشتری استفاده می‌کنند.

    در این آموزش ساده ترین راه برای ایجاد ربات را بررسی خواهیم کرد. با دستان خودمو نحوه عملکرد آن را توضیح دهید.

    بیایید با توسعه رباتی شروع کنیم که می تواند به طور خودکار اخبار شرکت منتشر شده در وب سایت یا فیس بوک را به کانال تلگرام ارسال کند.

    مرحله 1. یک ربات در تلگرام بسازید

    یک ربات در تلگرام با استفاده از ربات دیگری به نام BotFather ایجاد می شود. دستور newbot / را برای او ارسال می کنیم، نامی که در لیست مخاطبین نمایش داده می شود و آدرس را انتخاب می کنیم. به عنوان مثال، "ربات برای DTF" با آدرس "dtf_news_bot".

    اگر آدرس اشغال نباشد و نام به درستی وارد شده باشد، BotFather پیامی را با یک رمز - یک "کلید" برای دسترسی به ربات ایجاد شده ارسال می کند. باید نگهداری شود و به کسی نشان داده نشود.

    از طریق BotFather، می‌توانید آواتار ربات، توضیحات و موارد دیگر را نیز اضافه کنید.

    مرحله 2. ایجاد یک کانال در تلگرام

    حالا یک کانال با هر نام و آدرسی ایجاد می کنیم و به تنظیمات آن می رویم. تنها چیزی که لازم است این است که رباتی را که ایجاد کرده ایم به لیست مدیران اضافه کنید - این رباتی است که یادداشت ها را در کانال منتشر می کند.

    برای جستجوی یک ربات، می توانید از آدرس آن استفاده کنید. به عنوان مثال، "dtf_news_bot".

    مرحله 3: ایجاد یک شرط

    مرحله بعد- آموزش ارسال اخبار از سایت به کانال ایجاد شده به ربات. برای این ما استفاده می کنیم سرویس محبوببرای اتوماسیون IFTTT

    با استفاده از آن، می توانید دستورالعمل هایی برای کار ربات ایجاد کنید. در مورد ما، به این صورت است: هر بار که یک ورودی جدید در فید RSS سایت ظاهر می شود، باید یک پیام به کانال تلگرام ارسال کند.

    IFTTT مخفف If This Then That است

    به بخش IFTTT "My Applets" بروید، روی دکمه "New Applet" و سپس روی پیوند "This" کلیک کنید. ما محرک Feed , New Feed مورد را در لیست توابع پیدا می کنیم و URL فید RSS خود را مشخص می کنیم. به عنوان مثال، برای سایت های وردپرس، معمولاً در example.com/feed/ قرار دارد.

    به جای فید RSS، می توانید ظاهر ورودی های جدید را در حساب توییتر یا فیس بوک ردیابی کنید - برای هر عملکرد، IFTTT ماژول های جداگانه ای ارائه می دهد.

    حالا بیایید به مرحله دوم برویم - عملی را که پس از شناسایی انجام می شود انتخاب کنید ورودی جدیددر RSS روی "That" کلیک کنید و به دنبال Maker Webhook، "Make a web request" بگردید - با استفاده از این ماژول، می توانید درخواست ها را به هر سرویسی ارسال کنید. در مورد ما، به ربات در تلگرام.

    در فرم باز شده در قسمت URL باید لینک https://api.telegram.org/bot را مشخص کنید. رمز/sendMessage با جایگزینی توکن تولید شده در مرحله اول در آن. روش: POST، نوع محتوا: application/json.

    Body - فیلدی برای قالب درخواست که به تلگرام ارسال می شود. در آن، ما نشان می دهیم که پیام باید به کدام کانال ارسال شود و چه چیزی باید در آن نوشته شود:

    ("chat_id":"@channel_address"، "text":"((EntryTitle)) ((FeedUrl))")

    • chat_id- آدرس کانالی که پیام باید به آن ارسال شود. بنابراین، یک ربات می تواند به طور همزمان به چندین کانال متصل شود. همچنین می توانید یک کاربر خاص را به عنوان گیرنده تعیین کنید. در این صورت به جای آدرس کانال باید شناسه آن را مشخص کنید (با استفاده از ربات قابل دریافت است).
    • متن- محتوای پیام به عنوان مثال، عنوان مطالب از RSS (EntryTitle)، محتوای آن (EntryContent) و پیوند (FeedUrl). فهرست کنید گزینه های موجودبا کلیک بر روی دکمه مواد تشکیل دهنده قابل مشاهده است.

    اگر همه چیز به درستی تنظیم شده باشد، ربات پیامی از فید RSS به کانال ارسال می کند. ماشه در IFTTT دارای تاخیر است، بنابراین پیامی که در فید RSS ظاهر می شود بلافاصله به تلگرام نمی رود، بلکه بعد از 30-60 دقیقه می رود.

    به عنوان شرط برای ارسال پیام، می توانید هر سناریوی دیگری را که در IFTTT موجود است انتخاب کنید. به عنوان مثال، Weather Underground می تواند هر روز یک پیام با پیش بینی آب و هوا برای فردا ارسال کند. ماشه سهام را می توان برای ارسال قیمت سهام در پایان معاملات پیکربندی کرد.

    حالا بیایید یک کار دشوارتر را حل کنیم - به ربات ایجاد شده آموزش می دهیم که به پیام های کاربر پاسخ دهد. به عنوان مثال، لیست قیمت، مخاطبین را ارسال کنید یا به سوالات متداول مشتریان پاسخ دهید.

    مرحله 4. اتصال سرور

    در این مرحله به میزبانی وب و گواهینامه SSL نیاز خواهید داشت که با استفاده از سرویس Let's Encrypt به صورت رایگان می توانید آن را دریافت کنید.

    ایجاد یک زیر دامنه جداگانه برای ربات - به عنوان مثال، bot.example.com - و قرار دادن یک فایل index.php روی آن راحت تر است. در داخل فایل کد ساده ترین ربات را از وبسایت تلگرام قرار می دهیم.

    فقط دو تغییر باید در کد ربات اعمال شود:

    • در صف define("BOT_TOKEN", "12345678:replace-me-with-real-token");به جای 12345678:replace-me-with-real-token توکن به دست آمده در مرحله اول را بنویسید.
    • در صف define("WEBHOOK_URL"، "https://my-site.example.com/secret-path-for-webhooks/");به جای https://my-site.example.com/secret-path-for-webhooks/ URL فایل را با کد ربات مشخص کنید: https://bot.example.com/index.php.

    مرحله 5. ربات تلگرام و سرور را متصل می کنیم

    حالا باید تلگرام و فایل روی سرور را لینک کنیم تا درخواست های ارسالی به ربات در مسنجر توسط اسکریپت ما پردازش شود.

    این به یک کنسول نیاز دارد. برای ارائه دهندگان هاست مختلف، ممکن است در بخش های مختلف رابط مدیریت سایت قرار داشته باشد. علاوه بر این، می توانید با وارد کردن دستور از طریق آن، از برنامه Terminal در macOS استفاده کنید ssh username@domain_address.

    پس از وارد کردن رمز عبور، یک دستور ساده برای ساب دامین خود تایپ می کنیم :

    php -f /var/www/bot.example.com/index.php

    از آشنایی با شما خوشحالم - پاسخ ربات به پیام ارسال شده توسط کاربر.

    در زیر در کد ما پاسخ های اضافی را اضافه می کنیم. به عنوان مثال، بسته به کلمه ارسال شده، ربات ارسال می کند اطلاعات لازمکاربر (مانند

    که در اخیراتلگرام بر لبان همه است. ما باید به بخش بازاریابی این برنامه ادای احترام کنیم، هیاهو به شهرت رسید. یکی از «تراشه‌های» اصلی تلگرام، امنیت ادعایی آن است - به گفته پاول دوروف، تمام مکاتبات بین کاربران رمزگذاری شده است. علاوه بر این، هیچ سرویس ویژه ای در جهان به پیام های شما دسترسی نخواهد داشت. اما این مقاله در مورد آن نیست. امروز می خواهم در مورد یک ویژگی به همان اندازه جالب در تلگرام، یعنی ربات ها صحبت کنم. علاوه بر این واقعیت که شبکه در حال حاضر پر از اطلاعات در مورد انواع مختلف است ربات تلگرام x (به عنوان مثال ربات github)، این پیام رسان API خود را برای توسعه دهندگان باز کرد و اکنون همه می توانند ربات خود را با بلک جک و چیزهای خوب ایجاد کنند.

    در مقاله مثالی از نوشتن یک ربات آنلاین با استفاده از پایتون و فریم ورک جنگو خواهم آورد. یعنی ما یک برنامه وب کامل را که روی یک میزبان راه دور می چرخد ​​و دستورات کاربران را می پذیرد، "قطع" می کنیم. تمام کد منبع در مخزن github من موجود است.

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

    چگونه یک ربات تلگرام بسازیم؟

    ابتدا باید ربات آینده خود را در تلگرام ثبت کنیم. این کار به روش زیر انجام می شود:

    • شما باید نصب کنید اپلیکیشن تلگرامبه گوشی یا کامپیوتر شما می توانید برنامه را دانلود کنید
    • ما یک ربات با نام به لیست مخاطبین خود اضافه می کنیم پدر ربات
    • با فشار دادن دکمه، روند "ارتباط" با ربات را شروع می کنیم شروع کنید. در مرحله بعد، لیستی از دستورات را دقیقاً مانند تصویر مشاهده خواهیم کرد.
    • برای ایجاد یک ربات جدید، باید دستور را اجرا کنید /newbotو دستورالعمل ها را دنبال کنید. توجه داشته باشید که نام کاربری یک ربات همیشه باید با کلمه ربات ختم شود. به عنوان مثال DjangoBot یا Django_bot.

    • برای ربات ما، نام PythonPlanetBot را انتخاب کردم، زیرا عملکرد اصلی آن تجزیه است. فید RSSسایت Python Planet و نمایش اطلاعات آخرین پست ها به کاربر :)

    پس از ایجاد ربات، به خط متن توجه کنید:

    از این نشانه برای دسترسی به HTTP API استفاده کنید:

    که به دنبال آن به اصطلاح. نشانه ای که با آن ربات خود را دستکاری می کنیم. علاوه بر عملکرد ایجاد ربات تلگرام، BotFather چندین ویژگی دیگر نیز دارد:

    • ربات را توضیح دهید
    • تنظیم آواتار
    • رمز را تغییر دهید

    شروع با کدنویسی

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

    • استفاده تماس APIروش دریافت به روز رسانی
    • نصب وب هوک

    راه اندازی Webhook شامل ارسال یک URL ویژه به ربات است که هر بار که شخصی شروع به ارسال پیام به ربات می کند، درخواست POST را دریافت می کند. این گزینه ای است که ما برای تعامل بین ربات و کاربر آن استفاده خواهیم کرد. برای تنظیم URL باید از روش API استفاده کنید setWebhook. توجه داشته باشم که URL باید با https شروع شود، یعنی دارای ایمن باشد اتصال SSLبا گواهی معتبر تلگرام امکان استفاده از گواهی امضا شده توسط خود را می دهد، اگرچه این امر در روش نیاز دارد setWebhookهمچنین کلید عمومی را در قالب PEM (ASCII base64) ارسال کنید. یا می توانید آن را از Let's Encrypt دریافت کنید.

    بیشتر در مورد دریافت به روز رسانیو setWebhookرا می توان به ترتیب خواند و .

    پس برگردیم به کتابخانه پایتونبرای کار با تلگرام - تله پات. در حال حاضر آخرین نسخه آن 6.7 است. آن را در پایتون virtualenv نصب کنید:

    تله پات نصب pip

    ساده ترین راه برای تعامل با ربات تلگرام در پایتون به شرح زیر است:

    Import telepot token = "123456" TelegramBot = telepot.Bot(token) print TelegramBot.getMe()

    ما به متغیر توکن مقدار توکن دریافتی را هنگام ایجاد ربات از طریق BotFather اختصاص می دهیم. در نتیجه پس از اجرای این دستورات به دست می آید:

    (u"نام کاربری": u"PythonPlanetBot"، u"first_name": u"Python Planet Bot"، u"id": 199266571)

    تبریک می گویم! ما ساده‌ترین درخواست API getMe را نامیدیم که اطلاعات مربوط به ربات را برمی‌گرداند: نام کاربری، شناسه، first_name.

    بیایید ربات خود را به لیست مخاطبین خود اضافه کنیم و اولین دستور استاندارد / start را برای آن ارسال کنیم

    بیایید کد را اجرا کنیم:

    TelegramBot.getUpdates() [(u"message": (u"date": 1459927254, u"text": u"/start", u"from": (u"username": u"adilkhash", u"first_name ": u"Adil"، u"id": 31337)، u"message_id": 1، u"chat": (u"نام کاربری: u"adilkhash، u"first_name": u"Adil، u" type": u"private"، u"id": 7350))، u"update_id": 649179764)]

    فرآیند ارتباط با ربات تلگرام از طریق HTTPS انجام می شود. JSON برای انتقال داده ها استفاده می شود. روش دریافت به روز رسانیفهرست/آرایه ای از اشیاء از نوع Update را برمی گرداند. Inside Update یک شیء Message است. برای تعامل استاندارد با ربات، ما در واقع به شی Message علاقه مند هستیم، که از آن ویژگی متن را می خوانیم، که متن ارسال شده به ربات را ذخیره می کند و شی چت، که حاوی اطلاعاتی در مورد کاربری است که ارتباط با ربات تلگرام ما را آغاز کرده است. . همچنین یک پارامتر update_id وجود دارد که به عنوان پارامتر offset هنگام فراخوانی متد getUpdates عمل می کند. یعنی update_id+1 همه پیام‌های دریافتی پس از آخرین update_id را برمی‌گرداند، در حالی که همه پیام‌های قبلی حذف می‌شوند.

    TelegramBot.getUpdates(649179764+1) [(u"message": (u"date": 1459928527, u"text": u"hello bro", u"from": (u"username: u"adilkhash", u"first_name": u"Adil"، u"id": 31337)، u"message_id": 13، u"chat": (u"username: u"adilkhash"، u"first_name": u"Adil" ، u"type": u"private"، u"id": 7350))، u"update_id": 649179765)]

    در مرحله نوشتن ساده ترین ربات تلگرام همین تماس ها برای ما کافی است. بیایید شروع به نوشتن یک برنامه جنگو برای خدمت به کاربران خود کنیم.

    یک تابع تجزیه و تحلیل فید RSS ساده Planet Python به شکل زیر است:

    # -*- کدگذاری: utf8 -*- از xml.etree واردات cElementTree درخواست‌های واردات def parse_planetpy_rss(): """10 مورد اول از http://planetpython.org/rss20.xml """ پاسخ = requests.get را تجزیه می‌کند ("http://planetpython.org/rss20.xml") parsed_xml = cElementTree.fromstring(response.content) آیتم ها = برای گره در parsed_xml.iter(): if node.tag == "item": item = () برای item_node in list(node): if item_node.tag == "title": item["title"] = item_node.text if item_node.tag == "link": item["link"] = item_node. آیتم های متن. افزودن (مورد) موارد را برمی گرداند[:10]