ساخت ربات تلگرام با ۱۰ خط کد php


- 167 بازدید

ساخت ربات تلگرام با ۱۰ خط کُد PHP!
سلام. توی این آموزش قصد دارم تجربیاتم در زمینه نوشتن رباتهای تلگرامی رو خیلی سریع و خلاصه باهاتون به اشتراک بگذارم. این پست رو به صورت سوال و جواب مینویسم و به سوالات پرتکراری که توی گروهها و انجمنهای مختلف ازم پرسیده شده جواب میدم و آخر کار هم یک کلاس PHP عالی برای نوشتن راحت هر نوع روبات تلگرامی بهتون معرفی میکنم و نحوه استفاده ازش رو آموزش میدم.
روبات نویسی سخته؟ و اینکه چقدر طول میکشه یاد بگیرم؟
خوب بستگی داره به خودتون، به اینکه چقدر توی برنامه نویسی تسلط و مهارت داشته باشید؛ قطعا هرچه با تجربه تر باشید کار با Bot-API تلگرام هم راحت تر و درکش رو ساده تر میکنه.
پیش‌نیازهای نوشتن روبات نوشتن چیه؟ چه مهارتهایی لازم داره؟
خوب داشتن دانش برنامه نویسی در حد شناخت دستورهایی مثل if, for و مفهوم Api و تابعها و یه مقدار اینکه بدونید Class چی هست و چطوری یه شی بسازید ازش کفایت میکنه.
از لحاظ پیاده سازی و کدنویسی چه مواردی نیاز دارم؟
هاست با حداقل ۵ مگابایت فضا
دامنه ای که روش اس اس ال (SSL) باشه. چون تلگرام بدون اس اس ال کار نمیکنه APIش.
و یک ادیتور و یه مقدار دانش برنامه نویسی!
میشه رو لوکال هاست روبات رو دیباگ کرد؟ چون شنیدم فقط باید آنلاین باشی!
خوب منم اوایل همین عقیده رو داشتم تا اینکه یکی از دوستان این سرویس رو بهم معرفی کرد. سایت ngrok مثل اینکه مشکل ssl روی لوکال رو حل میکنه و قطعا سرویسهای مشابه دیگه هم وجود داره اگه سرچ کنید. خودم کار نکردم هنوز باهاش.
چطوری شروع کنم به روبات نویسی؟
این سوال سوالیه که آموزش من رو شروع میکنه؛ سوالات کلی جواب داده شدن و در صورت داشتن سوالات بیشتر کامنت بذارید؛ بعد با پاسخ اضافه میشه به همین آموزش.
من اوایل که روبات تلگرام و apiش معرفی شد از خود مستندات تلگرام شروع کردم که کار باهاشون وقت گیر بود استفاده میکردم. تا اینکه توی سرچهام به این کلاس عالی که به زبان php هم نوشته شده برخوردم و دیگه همیشه از اون به بعد ازش استفاده کردم و در حد توانم بهش در پاسخگویی سوالاتش توی گیتهاب هم کمک کردم و خوبیش هم اینه که هماهنگ با آخرین تغییرات تلگرامه این کلاس و با هر آپدیت کلاس هم آپدیت میشه که ایشالا خدا بهش عوض بده :))
برای استفاده از این کلاس و api تلگرام اول باید یه حساب کاربری تو تلگرام باز کنید ینی عضو تلگرام باشید. بعدش باید از تو خود تلگرام وارد ربات بات فادر بشید @BotFather. این روبات قدم به قدم و با پرسیدن سوالاتی مثل اینکه اسم بات میخواین چی باشه، نام کاربریش چی باشه و … راهنمایی میکنه و بعد از اینکه همه چی اوکی پیش رفت بهتون یه token میده. این توکن کدشناسایی بات شما توی api خواهد بود که میتونید از طریق اون با سرورهای تلگرام ارتباط برقرار کنید.
کار بعدی اینه که یک فایل درست کنید و این موارد رو داخلش بنویسید. من اسم فایل رو میذارم mybot.php.
include(“Telegram.php”);
date_default_timezone_set(“asia/tehran”);
// Set the bot TOKEN
$bot_id = “YOUR-TOKEN”;
// Instances the class
$telegram = new Telegram($bot_id);
تا اینجای کار ما بات روی توی بات فادر ساختیم، و توکن رو هم توی فایل تنظیم کردیم و یک شی هم ساختیم از کلاسش. فایل رو نبندید و بقیه آموزش رو بخونید 🙂
تنظیم وبهوک تلگرام (Telegram Webhook)
تلگرام از وبهوک برای کار با API استفاده میکنه؛ طرز تنظیمش برای بات هم این شکلیه. شما فقط کافیه مواردی که با حروف بزرگ نوشتم رو جایگزین کنید و آدرس رو توی مرورگر وارد کنید و اینتر بزنید!
https://api.telegram.org/botYOUR-TOKEN/setwebhook?url=YOUR-URL
• نکته ها:
قبل از این کار سه فایل Telegram.php. TelegramErrorLogger.php, mybot.php که مربوط به کلاس معرفی شده هستش رو باید توی یک پوشه و یک مسیر واحد روی سرورتون آپلود کنید.
کلمه bot قبل از توکن حتما باید وجود داشته باشه.
آدرس دامنه حتما باید https باشه یعنی روی دامنه ssl فعال شده باشه.
پسوند دامنه فرقی نمیکنه چی باشه. (آی‌آر یا …).
تست ربات
همه متغیرها و توابع طبق کلاس معرفی شده بالا نوشته شده پس برای نوشتن رباتهای پیشرفته تر مستنداتش رو توی گیتهاب مطالعه کنید و یا همینجا سوال بپرسید. حالا موارد زیر رو اضافه کنید به فایل mybot.php
$result = $telegram->getData();
$text = $telegram->Text(); // متنی که کاربر ارسال میکنه
$username = $telegram->Username(); // نام کاربری کاربر
$name = $telegram->FirstName();
$family = $telegram->LastName();
$message_id = $telegram->MessageID(); // هر پیغام در تلگرام یک آیدی یکتا دارد
$user_id = $telegram->UserID(); // چت آیدی یکتای کاربر
متغیرها با استفاده از توابع کلاس هر بار که دیتایی توی روبات رد و بدل میشه پر میشن و تغییر میکنن. پس تا اینجا و با کدهای بالا ما مسیج آیدی، نام، نام خانوادگی در صورتی که کاربر اون رو درست وارد کرده باشه و از همه مهمتر چت آیدی یکتای کاربر (user_id) که کل پیغامها و جوابهای روبات با استفاده از این برای مخاطب ارسال میشه رو داریم. برای تست اینکه ببینیم ربات درست کار میکنه این کدها رو هم در ادامه فایل اضافه کنید.
if(!is_null($text) && !is_null($chat_id)){
$content = array(‘chat_id’ => $chat_id, ‘text’ => $user_id);
$telegram->sendReplyMessage($content);
}
حالا محتوا فایل در سرور رو ذخیره کنید و وارد باتتون بشید و بعد /start رو کلیک کنید و یا متنی رو وارد کنید. با هر بار وارد کردن و ارسال هر متنی توی بات، بات چت آیدی شما رو به عنوان پاسخ برمیگردونه.
فکر میکنم کار تمام باشه. بوسیله این کلاس فوق العاده شما میتونید پیشرفته ترین رباتها رو بنویسید و هیچ کم و کسری خوشبختانه نداره و خیلی عالی همه چیز رو پوشش داده و خودتون هم میتونید در صورت تمایل توی توسعه این کلاس به نفر اصلی کمک کنید که خیلی فعالانه توی قسمکت issues به سوالها هم جواب میدن.
موفق باشید و سوالی داشتید حتما بپرسید. و اینکه کدهای نهایی شما باید با این شکل باشه
منبع ویرگول

۴ نفر این پست رو پسندیدن!

Print Friendly, PDF & Email



  • درباره هادی ندیمی

    سلام
    من هادی ندیمی هستم
    من متولدِ 16 اردیبهشت 1370
    و ساکن شهرکردم
    من از اول تا پنجم ابتدایی توی مدرسه ی سینا که مخصوص نابینایان ناشنوایان و افراد کمتوانِ ذهنی هست درس خوندم
    اما دورانِ راهنمایی و دبیرستان را
    هم توی مدارس عادی گذروندم
    من در حالِ حاضر هم دانشجوی رشته ی راهنمایی و مشاوره
    در دانشگاهِ پیامِ نور هستم
    من به کامپیوتر مبایل و موسیقی خیلی علاقه دارم
    با امید به این که
    من فردِ مفیدی برای سایتِ شبِ روشن باشم
    این هم آیدی اسکایپم
    اگه اوامری باشه
    در خدمتم
    hnadimi.chb@gmail.com

    این نوشته در آموزش, اندروید, اینترنت, ترفند, تلفن همراه, دسته‌بندی نشده, رایانه, فناوری اطلاعات ارسال و , , , , , برچسب شده است. افزودن پیوند یکتا به علاقه‌مندی‌ها.

    6 پاسخ به ساخت ربات تلگرام با ۱۰ خط کد php

    1. هادی ندیمی می‌گوید:

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

    2. امیر رضا رمضانی می‌گوید:

      سلام
      خب من یه چیزه دیگه رو هم باید اضافه کنم: برایه اینکه رباتتون بتونه زبونه انگلیسی رو هم به خوبی پشتیبانی کنه از سرویسایی مثله api.ai میتونید استفاده کنید (فکر کنم برا php هم sdk داره)

    3. بهنام نصیری بهنام نصیری می‌گوید:

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

    پاسخ دهید

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

    Question   Razz  Sad   Evil  Exclaim  Smile  Redface  Biggrin  Surprised  Eek   Confused   Cool  LOL   Mad   Twisted  Rolleyes   Wink  Idea  Arrow  Neutral  Cry   Mr. Green