سلام
چندوقت پیش یک نفر من رو ازطریق مطلبی که درباره بات نویسی پیام رسان بله نوشته بودم پیداکرد (نمیدونم از طریق ویرگولم بود یا همین سایت) و گفت یک مسابقه داریم و میخوایم افراد اثر هاشنو رو برای ربات بفرستند و ربات برای من. (ربات بله برای فورواد کردن نیاز داشتن، یعنی نمی خواست افراد مستقیما براش چیزی بفرستند و میخواست به واسطه ربات پیام هارو دریافت کنه!)، گفتن سرور داریم، ربات رو با پایتون آمده کردم(که خیلی داستان داشت، بعدا وقت شد مینویسم) گفتم دسترسی ssh بدید بارگذاری کنم دیدم یوزنیم پسورد یک هاست cpanel فرستادن!
دوتا راهکار داشتم:
1- پیاده سازی با فلسک یا …
2- استفاده از php (لعنت الله علیه)
یکم با کدم سرکله زدم دیدم پیاده سازیش داستان داره، بیخیال شدم و رفتم به سمت PHP !
حدود یکی دوسال پیش با php برای تلگرام بات نوشتم (اگر قسمت بشه کدش رو تو گیتهام پابلیش میکنم) رباتی که فایل های apk براش ارسال میکردی و با virus total چک میکرد بد افزار هست یا نه (اون زمان تو تلگرام خیلی بدافزار به باعنوان های زرد مثل صیغه یاب و… منتشر میشد)
مطلب بالا رو برای این گفتم، چون api جدید بله با تلگرام سازگاری داره (یا حداقل اینطوری ادعا میکنن) و اون کتابخونه که استفاده کردم خیلی کوچیک و راه انداز بود و فقط کافی هست با چند تغییر کوچیک برای بله آمادش کنیم.
برای شروع اول این کتاب خونه رو دانلود کنید.
و مقدار api.telegram.org این خط و این خط رو به tapi.bale.ai تغییر بدید، به همین آسونی!
مثلا یک فایل به اسم bot.php ایجاد کنید و دو فایل Telegram.php و TelegramErrorLogger.php در کنارش قرار بدید (حتما تغییرات قسمت بالا رو داده باشد)
bot.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<?php include 'Telegram.php'; $bot_token = 'BOT_TOKEN'; $telegram = new Telegram($bot_token); $admin_chat_id = YOUR_CHAT_ID; $text = $telegram->Text(); $username = $telegram->Username(); $name = $telegram->FirstName(); $family = $telegram->LastName(); $message_id = $telegram->MessageID(); $user_id = $telegram->UserID(); $chat_id = $telegram->ChatID(); $msgType = $telegram->getUpdateType(); // handle command if($text == '/start'){ $content = array('chat_id' => $chat_id,'reply_to_message_id' => $message_id, 'text' => "سلام رفیق"); $telegram->sendMessage($content); die(); }else if($text == '/help'){ $content = array('chat_id' => $chat_id,'reply_to_message_id' => $message_id, 'text' => 'کمک لازم داره؟'); $telegram->sendMessage($content); die(); } //send message information $content = array('chat_id' => $admin_chat_id, 'text' => "اطلاعات پیام: \n chat id: ".$chat_id."\nfirst name: ".$name."\nusername: @".$username); $telegram->sendMessage($content); // forward message to admin $content = array('chat_id' => $admin_chat_id,'message_id' => $message_id, 'from_chat_id' => $chat_id ); $telegram->forwardMessage($content); // say sent success $content = array('chat_id' => $chat_id,'reply_to_message_id' => $message_id, 'text' => 'پیام باموفقیت دریافت شد'); $telegram->sendMessage($content); |
مقدار BOT_TOKEN رو به توکن ربات خودتون و YOUR_CHAT_ID رو با چت آیدی خودتون جایگزین کنین.
و در آخر webhook تون رو ست کنید:
1 |
https://tapi.bale.ai/bot[BOT_TOKEN]/setwebhook?url=https://[YOUR_DOMAIN] |
موفق باشید
پ.ن: چند بازخورد گرفتم که میگفتن YOUR_CHAT_ID چی چی هست و از کجا پیدا کنیم. لازم شد یکی چیزی رو اینجا توضیح بدم.
اول از همه این یک ربات فورواد کننده هست همونطوری که بالا اشاره کردم. دوم، برای بدست آوردن chat id خودتون، میتونید یک قسمت دیگه به کد اضافه کنید که chat id خودتون رو برای خودتون بفرسته، مثلا:
1 2 |
$content = array('chat_id' => $chat_id,'reply_to_message_id' => $message_id, 'text' => 'چت آید شما: '.$chat_id); $telegram->sendMessage($content); |