شاید شما از برنامه نویسانی باشید که بخواهید تلگرام رو به صورت تحت وب برای خودتان شخصی سازی کنید. به خاطر سورس باز (open source) بودن تلگرام ، ساخت ربات تلگرام و انجام شخصی سازی های مختلف بسیار آسان است.
میتوانید با استفاده از API هایی که خود سایت تلگرام در اختیارتان قرار می دهد ، استفاده کنید. یا میتوانید از برنامه هایی که برای کار با این API ها نوشته شده استفاده کنید.
ما در آموزش ساخت ربات تلگرام CLI با PHP از روش دوم استفاده میکنیم. یکی از برنامه نویسان برنامه ای رو برای لینوکس توسعه داده که میتونید از طریق خط فرمان با تلگرام کار کنید. کار کردن با خط فرمان شاید برای همه راحت نباشه.
برای همین یک کلاس آماده برای ارتباط با این ابزار نوشتم تا شما راحت بتونید از این برنامه در PHP استفاده کنید.
سورس ربات تلگرام CLI را در آخر مقاله از باکس دانلود , دریافت کنید
۱ – نصب
برای کار با این برنامه که از این به بعد به اسم واقعیش یعنی tg-cli صداش میزنیم ابتدا باید طبق توضیحات خودش توی لینوکس نصبش کنید.بعد از اینکه نصبش کردید با دستور
1 |
./bin/telegram-cli |
در خط فرمان لینوکس (terminal) اجرا کنید
در ابتدا از شما شماره موبایل میخواد. شماره موبایلی رو که روش تلگرام دارید رو بهش بدید. یک کد به تلگرامتون ارسال میشه. کد رو وارد کنید. حالا وارد برنامه tg-cli شدید و میتونید به وسیله دستوراتی که داره با تلگرام توی ترمینال کار کنید.
میتونید دستور help رو تایپ کنید تا ببینید چه دستوراتی داره.مثلا با دستور contact_list میتونید لیست کانتکت هاتون رو ببینید. بعد از اینکه از کار کردن باهاش مطمین شدید با زدن Ctrl+c ازش خارج بشید و مرحله بعدی رو انجام بدید.
۲ – نصب کتابخانه مورد نیاز ساخت ربات تلگرام CLI با Composer
به وسیله Composer کتابخانه زیر رو نصب کنید.
ابتدا یک فایل با نام composer.json ایجاد کنید و محتویات زیر رو داخلش کپی کنید :
1 2 3 4 5 |
{ "require": { "smoqadam/telegramcli": "@dev" } } |
سپس دستور composer install رو اجرا کنید.
نکته :اگر نمیدونید Composer چیه و چجوری نصبش کنید و چجوری میشه ازش استفاده کرد بهتره با مراجعه به آموزش composer در php و بعد از یادگرفتن کامپوزر برگردید و آموزش رو ادامه بدید.
۳ – ایحاد کد های ساخت ربات تلگرام CLI با PHP
حالا یک فایل با نام index.php ایجاد کنید :
1 2 3 4 5 |
require 'vendor/autoload.php'; $t = new Smoqadam\TelegramCli('unix:///tmp/t.sck'); $contacts = $t->contact_list(); //print_r($contacts); echo $t->post($contacts[0]['print_name'],'Hello'); |
خط اول یه شیء جدید ساختیم و آدرس سوکتی که توی مرحله بعد میبینید رو بهش دادیم. خط بعدی لیست کانتکت هارو گرفتیم. خط بعدش پرینتش کردیم. خط آخر هم یک پیام به اولین کانتکتمون ارسال کردیم.
۴ – مرحله آخر – اجرای اسکریپت
خب فایل index.php رو ذخیره کنید.حالا Terminal رو باز کنید و توی مسیری که tg-cli رو نصب کردید دستور زیر رو بزنید :
1 |
./bin/telegram-cli --json -dWS /tmp/t.sck & |
با استفاده از این دستور تمام ارتباطاطی رو که میخوایم با tg-cli داشته باشیم از طریق سوکتی که در مسیر /tmp/t.sck
ذخیره شده انجام میدیم. پس دقت کنید که مسیر سوکت رو در فایل php هم درست وارد کنید.
آپشن --json
هم به منظور استقاده شده که تمام خروحی ها رو به صورت json برای ما برگردونه تا توی php راحت تر بتونیم ازش استفاده کنیم.
حالا index.php رو توی مرورگر باز کنید. اگر مراحل قبل رو به درستی انجام داده باشید٫ پس بازشدن مرورگر و اجر شدن index.php لیست contact های شما توی صفحه نمایش داده میشه. همچنین یک پیام به اولین کانتکت شما ارسال میشه.(حواستون باشه چیز بدی ننویسید آبرو ریزی بشه)
نکته خوبی که در مورد استفاده از این کتابخانه هست اینه که تمای دستوراتی که توی برنامه tg-cli وجود داره رو با همون سینتکس میتونید استفاده کنید.
مثلا دستور post برای ارسال پیام به یک کاربر خاصه. توی خط فرمان باید مثل زیر عمل کنیم :
1 |
> post hasan_shafiei "salam khoobi |
حالا همین دستور رو اگر بخواید در php استفاده کنید باید مثل زیر باشه :
1 2 3 |
<?php $t->post(‘hasan_shafiei’,’salam khoobi’); |
با استفاده از این کلاس میتوانید برای خودتان یک تلگرام شخصی سازی شده درست کنید که مثلا وقتی یک پیام رو خواندید تیک خوانده شده برای طرف مقابل نخوره. یا هزاران کار فوق العاده دیگذ.
کد های ساخت ربات تلگرام CLI با PHP را از باکس دانلود , دریافت کنید
هر گونه سوالی در مورد پیاده سازی ساخت ربات تلگرام CLI با PHP داشتید از قسمت نظرات ارسال کنید . سریعا به پرسش شما پاسخ داده می شود .
سفارش ساخت ربات تلگرام
موفق و پیروز باشید
سلام خوبین
من یه چنلی دارم میخام مشاهده کنم کیا پست که میذارم رو مشاهده میکنن
مثلا ۱۰ تا ویو میخوره ببینم کیا نگاه کردن به این پست
همچین جیزی میشه ؟
لطفا کمک کنین
سلام. ممنون. خیر این مورد امکانش نیست
سوال دیگه ای هم که دارم اینه که وقتی داریم index.php رو اجرا میکنیم باید حتما روی سرور مجازی باشه یا رو خود لینوکس کامپیوتر قابل اجراست ؟
./bin/telegram-cli –json -dWS /tmp/t.sck &
اینجا شما جلوی t.sck یک & گذاشتین چون من با اند اجرا میکنم کار نمیکنه اصلا
احمالا چیزی جلوش بوده که حذف شده ؟
یه جایی تو کامنت ها گفتین که باید Permission 777 بگیریم خوب چطوری باید این پرمیشن داده بشه من چیزی نمیبینم فقط تلگرام اجرا میشه و اگه تو مرورگر بزنم index.php اصلا چیزی نشون نمیده
سیستم عامل من لینوکس هست
سلام وقت بخیر
من Index.php رو تو مرورگر به چه صورتی وارد کنم که بیاره.
مثلا تو لینوکس میرم تو همون پوشه bin و از اون جا میزنم که با فایرفاکس اجرا بشه این طوری اصلا چیزی نشون نمیده.
به نظرتون باید چیکار کنم؟
با استفاده از همین cli به تنهایی میشه ربات تبچی رو نوشت ؟
خیلیا با میدلاین تبچی رو نوشتن شما چه روشی رو بهتر میدونید ؟
با cli و madeline میتونید ربات تبچی بسازید و هر دو عالی هستند.
ببخشید میگن میدلاین یه کتابخونه پردردسریه و سخت میشه باهاش کار کرد
شما قبول دارین ؟
بله چون کتابخانه بسیار پرحجمیه و امکانات زیادی داره و دستتون برای پیاده سازی انواع قابلیت ها باز. همچنین متدهای فراوانی برای بخش های مختلف داره.
به هر حال اگر سرور مجازی دارید که از cli میتونید استفاده کنید و نمیشه روی هاست معمولی نصب کرد برعکس میدلاین رو حتی میتونید رو هاست اشتراکی هم نصب و اجرا کنید.
سلام من این ارورو دریافت میکنم مشکل چیه ؟
Fatal error: Uncaught Exception: RPC_CALL_FAIL 401: AUTH_KEY_UNREGISTERED
سلام. فولدر .telegram-cli رو حذف و دوباره تست کنید.
اگر اوکی نشد عملیات اعتبارسنجی و دریافت و وارد کردن کد رو مجدد انجام بدید
اره درست شد ولی بعد چند بار کار کردن این ارورو داد .
Fatal error: Uncaught Exception: Something went wrong.
سلام من ارور زیر رو دریافت میکنم
Warning: stream_socket_client(): unable to connect to unix:///tmp/t.sck (No such file or directory) in /var/www/html/vendor/smoqadam/telegramcli/src/Smoqadam/TelegramCli.php on line 18
Fatal error: Uncaught Exception: Connect to remote socket failed. in /var/www/html/vendor/smoqadam/telegramcli/src/Smoqadam/TelegramCli.php:20 Stack trace: #0 /var/www/html/index.php(4): Smoqadam\TelegramCli->__construct(‘unix:///tmp/t.s…’) #1 {main} thrown in /var/www/html/vendor/smoqadam/telegramcli/src/Smoqadam/TelegramCli.php on line 20
بعد قبل اینکه ایندکسمو توی مرورگر اجرا کنم توی ترمینال لینوکس اینو اجرا میکنم
./tg/bin/telegram-cli –json -dWS /tmp/t.sck &
جوابش اینو میده
[۱] ۲۹۹۳۸
بعد که دوباره اجرا میکنم
bind: Address already in use
اینو میده
مشکل این دوتا چیه ؟
سلام. مورد اولی که به خاطر پرمیشن میتونه باشه که یه whoami بزنید و یا با sudo اجرا کنید.
برای بار اول که اجرا کردید دیگه پورد در حال استفاده میشه و مجدد نمیتونید با همان پورت کانکشن بسازید.
سلام با این cli میشه این کارو انجام داد
مثلا من الان آیدی عددی یک کانال رو دارم
میخوام با اون آیدی عددی به کانال دسترسی داشته باشم . ممنون
سلام بله ممکنه و میتونید اینکار رو انجام بدید
سلام و خسته نباشید
می خواستم ببینم با این روش آیا امکان اینکه مطالب منتشر شده در یک کانال را بخونه و به یک کانال یا گروه دیگه ارسال کنه هست؟
آیا حتما باید عضو کانال مبدا بود یا خیر؟
سلام ممنون.
بله با این روش امکانش هست. باید عضو کانال باشه
موفق باشید.
ممنونم از جوابتون
میخواستم ببینم شما میدونید این بات (channels ( junction_bot از چه روشی استفاده کرده برای رصد کانال و گروه ها؟
من تست کردم بات عضو کانال نمیشه ولی دیتای کانال رو میتونه بخونه و به کانال یا شخص دیگه ارسال کنه
از MadelineProto برای دریافت اطلاعات کانال استفاده می کنه. در این مورد جستجو کنید
موفق باشید.
سلام آیا امکان داره این روی هاست اجراشه
سلام. خیر.
موفق باشید