آموزش طراحی ربات تلگرام با php

رتبه: 5 ار 3 رای SSSSS
ربات تلگرام
نویسنده: میلاد حیدری زمان مطالعه 6 دقیقه
Banner Image

در این مطلب نحوه ساخت ساده ترین ربات تلگرام وب هوک (webhook) با زبان برنامه نویسی پی اچ پی (PHP) را به شما آموزش می دهیم. یک آموزش گام به گام به زبان ساده و بیان همه نکات کاربردی مورد نیاز شما کاربران عزیز.

شرایط مورد نیاز:

برای ساخت این ربات شما به نسخه php 7.2+، افزونه cUrl، دامنه با گواهی SSL نیاز دارید. برای این کار می توانید از گواهینامه رایگان سایت Let’s Encrypt در آدرس https://letsencrypt.org/getting-started استفاده کنید.

مرحله 1- فرمول بندی مساله

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

/start: با زدن گزینه start ربات می گوید “Hello” یا “سلام” و عملکردهای خودش را شرح می دهد.

/save: نام و نام خانوادگی کاربر را ذخیره می کند.

/me: فقط در صورتی که داده های کاربر ذخیره شده باشند آنها را به او برمی گرداند. در غیر این صورت، پیامی مبنی بر اینکه کاربر را نمی شناسد ارسال می کند.

قصد ما این است که از طریق فیلد ورودی با ربات تعامل داشته باشیم. به این ویژگی “حالت درون خطی” (Inline mode) گفته می شود؛ یعنی تعامل از طریق پرس و جوهای درون خطی از فیلد ورودی متن در تمام چتها صورت می گیرد. تلگرام ویژگیهای مختلفی برای رباتها در اختیار شما می گذارد، مثل حالت درون خطی، پلتفرم پرداخت، پلتفرم بازی، صفحه کلید، دستورات و غیره.

۱۰ تا از بهترین زبان های برنامه نویسی برای وب و طراحی سایت

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

مرحله 2- تئوری ساخت

ربات تلگرام یک اکانت کاربری ویژه بدون شماره تلفن است. کاربران از دو طریق می توانند با این ربات ارتباط برقرار کنند:

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

ما برای ارتباط با سرورهای API تلگرام از رابط HTTPS ساده استفاده می کنیم. این رابط از HTTP GET و POST پشتیبانی می کند. پاسخ شامل یک شی جیسون (JSON) است که همیشه یک فیلد Boolean با گزینه «ok» دارد و ممکن است یک فیلد String اختیاری « description» به همراه توضیحی درباره نتیجه که برای انسان قابل خواندن است هم داشته باشد.

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

  • /getUpdate به روز رسانی ها را درست در لحظه فراخوانی شده، برمیگرداند.
  • webhook هر نوع درخواست از ربات را به برنامه ما ارسال می کند.

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

در کنار این مطلب دانلود کنید: آموزش طراحی سایت از صفر تا صد (16 درس رایگان)

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

[2-1] کاربر دستور را به ربات ما ارسال می کند.

[3-2] اپلیکیشن تلگرام درخواست را به API ارسال می کند.

[4-3] دو راه ارتباط بین برنامه و API تلگرام وجود دارد:

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

[مورد ب]: استفاده از webhook: با استفاده از این روش می‌توانیم با کاربر در زمان واقعی ارتباط برقرار کنیم و هر نوع به روزرسانی ربات به ما درخواست ارسال می کند.

مرحله 3- ساخت ربات

حالا آماده ساخت ربات هستیم! برای ساخت ربات مراحل زیر را طی کنید:

1- به BotFather بروید و توکن ربات خودتان را دریافت کنید. یادتان باشد که این توکن را نباید در اختیار کسی بگذارید.

2- همانطور که قبلا هم گفتیم، برای کار با API تلگرام فقط می توانیم از رابط HTTS استفاده کنیم، پس در برنامه مان به cUrl نیاز داریم. با این درخواست ساده از مرورگر می توانید cUrl را آزمایش کنید. فقط کافیست آدرس زیر را در مرورگرتان جایگذاری کنید:

https://api.telegram.org/bot<SecretBotToken>/getMe

3- حالا باید یک سرویس اتصال ایجاد کنیم، ما همیشه از اتصال cUrl استفاده می کنیم. به عنوان مثال:

define(‘BASIC_API_URL’, ‘https://api.telegram.org/bot<BOT_TOKEN>/’);public function make(string $action): array
{
$curlInit = curl_init();
curl_setopt($curlInit, CURLOPT_URL, BASIC_API_URL . $action);
$curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($curlInit); return json_decode($output, true);
}

ما اینجا از CurlConnectionService استفاده می کنیم که رابط ConnectionService را پیاده سازی می کند.

4- برای هر عملی به یک رمز مخفی نیاز دارید که از آن در url استفاده می شود؛ مثل /getMe. پس فرض می کنیم که ما قبلا راهی با استفاده از CURL ایجاد کرده ایم که برای درخواست یک URL می گیرد. این عمل ساده به صورت زیر خواهد بود:

$aboutMe = (new ConnectionService())->make(‘getMe’);

و بله، نتیجه aboutMe$ با فرمت json خواهد بود:

{
“ok”: true,
“result”: {
“id”: <bot_id>,
“is_bot”: true,
“first_name”: “bot_name”,
“username”: “bot_username”
}
}

خب، حالا باید چه کار کرد؟ الان باید وب هوک را تنظیم کنیم و برای این کار به میزبانی با URL HTTPS نیاز داریم. در در URL مذکور، به مسیر یا نام فایل (.php.) منحصر به فردی نیاز داریم. این مسیر یا فایل به عنوان کنترل کننده CORE برای ربات ما کار می کند. یادتان باشد که این مسیر یا نام به دلایل امنیتی باید مخفی باشد.

در ادامه بخوانید: آموزش HTML CSS‌ (به صورت پروژه محور)

به راحتی می توانید وب هوک را از ورودی جستجوی مرورگر راه اندازی کنید.

https://api.telegram.org/bot<SecretBotToken>/setWebhook?url=<webhookPageUrl>

5- از این مرحله به بعد می توانیم بدون بارگیری مجدد صفحات، به روزرسانیها را از ربات دریافت کنیم. بیایید این کار را انجام بدهیم:

// getting all data from incoming POST requestfile_get_contents(“php://input”);/*
* handle update as Associative array
* (or you can use object for this task)
*/$update = json_decode($update, true);

قصد ما این است که به دستورات کاربر واکنش نشان بدهیم؛ بنابراین باید داده های پیام را با پارامترهای فرعی «chat» و «text» زیر پارامتر مورد نیازمان دریافت کنیم:

switch ($update[‘text’]) {
case ‘/start’:
//some action
exit;
}

خب، حالا ما به دستور /start کاربر واکنش نشان می دهیم. بیایید پیامی برایش ارسال کنیم:

/*
* if user send /start command
* we answer hi!
*/$connectionService->make(
‘sendMessage?chat_id=’ . $update[‘chat’][‘id’] . ‘&text=hi!’
);

بعد می توانید این کار را روی رباتتان تست کنید. فقط کافیست پیام /start را برایش بفرستید.

6- حالا می توانیم دستورات را همانطور که میخواستیم دریافت کنیم. بعد باید سرویس ذخیره داده بسازیم که این کار را خودتان به راحتی می توانید انجام بدهید.

مرحله 4- ربات آماده است!

تبریک! ما توانستیم ربات تلگرام را در PHP بسازیم که می تواند نام و نام خانوادگی کاربر را از طریق چت او ذخیره کند. دیدید ساخت ربات تلگرام چقدر راحت است؟

ساخت ربات تلگرام در php

از همراهی شما سپاسگزاریم. موفق باشید.

در کنار این مطلب حتما دانلود کنید: آموزش صفر تا صد برنامه نویسی PHP (فیلم + pdf)

ویدیوی آموزش ساخت ربات تلگرام با کمک پی اچ پی

 

 

حتما دانلود کنید: روش ساخت سایت با PHP با یک مثال ساده 

profile name
میلاد حیدری

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

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه
آموزش ریزن (Reason) از صفر تا صد
آموزش ریزن (Reason) از صفر تا صد
قیمت محصول 11٪ 350,000 310,000 تومان
ادامه مطلب
آموزش تکلا استراکچر از صفر تا صد
آموزش تکلا استراکچر از صفر تا صد
قیمت محصول 159,000 147,000 تومان
ادامه مطلب

دیدگاهتان را بنویسید

1 2 3 4 5

3 نظر درباره «آموزش طراحی ربات تلگرام با php»

  • کریم باقری
    کریم باقری آیا این دیدگاه مفید بود ؟

    خدایی دمتون گرم

    پاسخ
  • marzieh
    marzieh آیا این دیدگاه مفید بود ؟

    سلام کد
    file_get_contents(php://input)
    برای من کار نمیکنه درواقع انگار چیزی دریافت نمیکنم
    میشه لطفا راهنمایی کنین چون webhook رو هم ست کردم ولی وقتی پیام میفرستم برای ربات چیزی دریافت نمیکنم روی هاست

    پاسخ
    • ابوالفضل

      سلام به این شکل استفاده کنید:
      ((php://input)json_decode(file_get_contents

مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید