آموزش ارسال پیام از فریم ورک Laravel به Telegram

تبلیغات
کانال تلگرام فتولیا

تلگرام یک مسنجر جدید است مثل وایبر، واتز اپ و … .ولی برتری پیام رسان تلگرام در امنیت آن و سرعت بی نظیرش است. Telegram برای بسیاری از پلتفرم ها مثل Android, iPhone/iPad, Windows, PC/Mac/Linux طراحی شده است و اخیرا امکان ربات نیز به آن افزوده شده است که قابلیت های فراوانی به ارمغان می آورد.

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

نکته :برای اتصال به API تلگرام، برنامه تحت وب شما باید اتصال امن HTTPS را دارا باشد

 

در این مقاله ما به سرور Telegram متصل خواهیم شد و با فشردن یه دکمه پیام را به گروهی در تلگرام ارسال خواهیم کرد. همه کدهای این مقاله در آدرس Github در دسترس است.

پیش نمایش

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

بعد از نصب لاراول این دستور را در ترمینال وارد کنید تا کلید یکتایی برای لاراول در فایل .env ایجاد شود.

نصب پکیج Telegram API برای Laravel

برای اتصال و تعامل با تلگرام ما باید به api رسمی تلگرام متصل شویم .برای راحتی کار از بسته آماده شده https://github.com/irazasyed/telegram-bot-sdk استفاده می کنیم.برای اینکه این بسته دریافت و روی لاراول نصب شود ، دستور زیر رو در ترمینال وارد کنید:

بعد از این نیاز هست دو خط زیر رو در فایل config/app.php اضافه کنیم . پس این فایل را باز کرده و در بخش providers خط زیر را وارد کنید:

و در پایین بخش facade این خط رو اضافه کنید:

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

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

ایجاد ربات تلگرام

انگار کسی در تلگرام شوخی اش گرفته و ما باید برای ایجاد ربات اول با پدر ربات صحبت کنیم .برای ملاقات پدر ربات تلگرام بعد از نصب تلگرام به این حساب برید : https://telegram.me/botfather

ارتباط با BotFather از طریق دستورات خواهد بود. برای ایجاد ربات جدید دستور /newbot رو داخل چت بنویسید. بعد از شما اسم ربات جدید و نام کاربری اش سوال میشه که باید وارد کنید. فقط در نام کاربری دقت کنید که آخرش عبارت “bot” وجود داشته باشه . مثل FotoliaBot .

creatingcodingobot

 

حالا توکن ربات را در دست داریم و در فایل .env لاراول تحت نام TELEGRAM_BOT_TOKEN وارد می کنیم:

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

ایجاد گروه تلگرام برای ایجاد دریافت پیام ها

ایجاد گروه در پیام رسان تلگرام بسیار آسان است.بعد از ایجاد گروه به قسمت Add Member گروه رفته و از بخش جستجوی کاربران (دکمه ذره بین) رباتی که ایجاد کرده اید را جستجو کنید و به گروه اضافه کنید.

در همین رابطه :   امکان جدید لاراول 5.3 : Rollback کردن فقط یک Migration

codigno-group-1

بدست آوردن CHAT_ID گروه

برای ارسال پیام به افراد یا گروه ها در تلگرام نیاز به دانستن CHAT_ID داریم که شماره منحصر به فرد گفتگوی مورد نظر است.برای بدست آوردن این شماره راه ساده ای پیدا نکردم تا جایی که دیدم.برای همین یک متد در لاراول برای نمایش پیام های گروه ایجاد کردم.وقتی متد getUpdates فراخوانی میشه ، تلگرام همه فعالیت های مربوط به ربات رو برای ما می فرسته. از این طریق ما می فهمیم ربات در کدام گروه ها عضو هست و شماره CHAT_ID گروه مون رو هم می فهمیم.

من یک کنترلر بنام Telegram ایجاد کردم و مسیر get-updates رو برای اون تعیین کردم.کدهای کنترلر به این صورت هست:

نتیجه بازگشتی از تلگرام به این صورت خواهد بود:

get-updates-response

هر آپدیت دارای یک شی message است که داخلش آرایه chat دارد.همون چت که عنوانش Codingo و شماره -۲۵۳۳۰۷ رو داره مورد نظر من هست. با این اطلاعات ربات قادر خواهد بود پیام ها رو به گروه مورد نظر ارسال کند.

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

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

ارسال پیام

برای ارسال پیام یک فرم ساده با ورودی متن پیام و دکمه ارسال خواهیم داشت.در سمت سرور در لاراول چک می کنم که مقدار پیام معتبر باشد و در این صورت پیام را به متد sendMessage پاس می دهم.

برای قالب کلی فرم از یک نمونه ساده Bootstrap استفاده می کنم :

و صفحه دارای فرم ارسال پیام به این شکل هست:

در فایل web.php لاراول هم ۴ روت یا مسیردهی خواهم داشت:

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

پیش نمایش

امیدوارم در برنامه های آینده تون مورد استفاده قرار بدین و لذت ببرید.منتظر نظرات و پیشنهادات تون هستیم.

منبع

3 Comments

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

More in Laravel
چگونه در فریم ورک لاراول sitemap ایجاد کنیم؟

در این مطلب می خواهم نحوه ایجاد نقشه سایت یا همون Sitemap در فریم ورک لاراول رو به صورت داینامیک...

Close