خانه » چگونه ربات برای تلگرام بنویسیم؟



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

تو این پست قصد دارم آموزش ساخت ربات برای تلگرام رو براتون به صورت مرحله به مرحله یاد بدم .

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

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

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

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

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

 (authorization token)

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

یک : توی سایت در این لینک ثبت نام کنید و توکن دریافت کنید .

دو : با استفاده از یکی از ربات های خود تلگرام به اسم (botFather) توکن دریافت کنید .

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

۱-روی این لینک کلیک کنید :

https://telegram.me/botfather

۲-توی مسنجر خودتون این بات نمایش داده میشه . دکمه استارت رو بزنید و لیست کامندهای این بات براتون بیاد  .

لیست کامندها و توضیحات خیلی شفاف هستش

با این کامند میتونید اسم و یوزرنیم رباتتون رو اضافه کنید . بعد این کار توکن براتون داده میشه .

بعد دریافت توکن میتونید از همه متدهای ای پی آی تلگرام استفاده کنید .

تو اینجا لیست همه متدهایی که براتون قابل استفاده هست رو مشاهده کنید .

خیلی راحت میتونید postman رو وا کنید و رکویست هایی که میخواید رو بزنید . نحوه استفاده از توکن هم یکم متقاوت هست و  باید ساختار زیر رو برای همه درخواست هاتون باید رعایت کنید .

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

مرحله دو : دریافت پیام ها

برای دریافت پیام ها در روش وجود داره :

یک : استفاده از متد

می تونید postman رو وا کنید و یه رکویست به این متد (getUpdates) بفرستید . مثل مثال زیر :

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

دو : استفاده از webhook

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

بهتر و با مثال برای تلگرام بگم :

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

تلگرام برای اینکه داده ها امن باشه از شما میخواد که از https استفاده کنید و سخت ترین قسمت ماجرا اینجاست که برای یه ربات باید هزینه ssl هم بکنید ولی می تونید از ssl های رایگان استفاده کنید که به لطف کشور عزیزمون شرکت هایی که ssl رایگان میدند برای ایران بسته هستند ولی میتونید از cloudflare استفاده کنید که خیلی راحت هستش کافیه از dns manager کلاود فلیر استفاده کنید و با استفاده از اون بگید که میخوام رو این دامنه و یا زیر دامنه ssl ست باشه .

بعد از اینکه مطمین شدید ssl رو دامنتون فعال شد . میتونید یه رکویست به این متد (setWebhook) مثل مثال زیر بزنید :

اگه از وب هوک استفاده کنید دیگه متد (getUpdates) براتون غیر فعال میشه .

کافیه توی body مقدار url خودتون که اپتون اونجاست ست کنید . برای حذف وب هوک هم کافیه به همین متد مقدار url رو خالی بزارید و رکوئستتون رو ارسال کنید

مرحله سوم : تعریف دستور

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

ولی یه گزینه تلگرام داره که شما با اون میتونید لیست دستور هایی که ربات شما بهش جواب میده رو مشخص کنید . دستورات رو میتونید با استفاده از botFather و با کامند /setcommands اضافه کنید .

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

پس از ثبت ربات شما توی هر گروهی باشه با زدن اسلش لیست کامندها نمایش داده میشه .

مرحله چهارم : پردازش پیام و ارسال جواب

الان باید منطق برنامتون رو بنویسید .

یعنی با چه پیام و یا دستوری ربات شما باید چیکار کنه .

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

یه مسله ای که حتما بهش توجه کنید اینه که پیام به صورت json براتون ارسال میشه . با استفاده کد زیر میتونید پیام رودریافت و به صورت آبجکت استفاده نمایید .

مثلا اگه شما تعریف کرده باشید که وقتی دستور /next_event_datetime ارسال شد . بره و از سایت لاراتاکز تاریخ و زمان برگزاری جلسه بعد رو پیدا کنه و به کاربر ارسال کنه . کدش به صورت زیر میشه .

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

<?php

//telegram sdk and configuration
$client = new Zelenin\Telegram\Bot\Api(‘someRandomToken’);

$update = json_decode(file_get_contents(‘php://input’));

//your app
try {

if($update->message->text != ‘/next_event_datetime’)
exit;

$dom = Sunra\PhpSimple\HtmlDomParser::file_get_html(‘http://laratalks.com/’);
$element = $dom->find(‘#location header.section-header h3’, 0);
$dateTime = $element->plaintext;

$response = $client->sendMessage([
‘chat_id’ => $update->message->chat->id,
‘text’ => $dateTime
]);

} catch (\Zelenin\Telegram\Bot\NotOkException $e) {

//echo error message ot log it
//echo $e->getMessage();

}

کافیه این کدها رو بسته به نیاز خودتون تغییر بدید.

منبع : http://amirh.ir/how-to-build-telegram-bot/#sthash.HuhIbg8d.1oLhKAXL.dpbs

 

#آموزش ساخت ربات تلگرام #ربات تلگرام #ساخت ربات تلگرام

دیدگاه ها در مورد افتتاح وب سایت ربات های تلگرام bot4telegram

  1. شادی گفت:

    عالیه بی نظیره من واثعا قبولش دارم

  2. ali گفت:

    ممنون جای مطمئنی میشناسید؟

  3. مجید معصومی گفت:

    قالیباف

  4. Mikad گفت:

    جهت دریافت پیام های کاربری که این رباط داده

  5. Parviz گفت:

    سلام و درود فراواڹ حضـــــور مدیراݧ محترمه
    قدرداݧ زحمات شما عزیزاݧ میباشم با تشڪر از برنامه ے ڪاربردی و مفیدتاݧ
    موفق باشید

  6. علیرضا گفت:

    من استفاده کردم راضی نبودم چون استیکر هارو میساخت ولی وقتی ادد میخواستم کنم میزد استیکر پیدا نشد

  7. علیرضا گفت:

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

  8. Az گفت:

    ربات اطلاعات ۱۱۸ میخوام

دیدگاهتان را بیان فرمایید :