1 – تکه کد جهت ارسال پیام به کاربر
elseif($text == "پیام به کاربر" or $text == "/gh"){ file_put_contents("data/$from_id/ali.txt","info"); bot('Sendmessage',[ 'chat_id'=>$chat_id, 'text'=>"_لطفا شناسه کاربر را وارد کنید:_", 'parse_mode'=>'MarkDown', ]); } elseif($ali == "info"){ file_put_contents("data/$from_id/ali.txt","sendpm"); file_put_contents("data/$from_id/info.txt","$text"); bot('Sendmessage',[ 'chat_id'=>$chat_id, 'text'=>"_لطفا پیام خود را وارد کنید!_", 'parse_mode'=>'MarkDown', ]); } elseif($ali == "sendpm"){ file_put_contents("data/$from_id/ali.txt","none"); file_put_contents("data/$from_id/sendpm.txt","$text"); $sendpm = file_get_contents("data/$from_id/sendpm.txt"); $info = file_get_contents("data/$from_id/info.txt"); bot('Sendmessage',[ 'chat_id'=>$info, 'text'=>"پیامی از طرف پشتیبانی $sendpm", 'parse_mode'=>'HTML', ]); bot('sendmessage',[ 'chat_id'=>$chat_id, 'text'=>"_پیام شما به کاربر مورد نظر ارسال شد._", 'parse_mode'=>'MarkDown', ]); }
2 – ربات جهت دریافت عکس های پروفایل
در این قسمت نمونه کدی قرار دادیم که با دریافت شناسه یک کاربر در تلگرام تمام تصاویر پروفایل او را نمایش می دهد. برای استفاده از این نمونه برنامه باید یک ربات ایجاد کرده و توکن آن را داشته باشید . همچنین باید شناسه کاربری (user_id) کاربر را هم داشته باشید.
<pre class="theme:light-abite lang:null decode:true lang:"><?php $user_id=$_GET['user_id']; define("API_KEY" , "your bot api token "); $url = "https://api.telegram.org/bot".API_KEY."/getUserProfilePhotos?user_id=$user_id"; $updates= json_decode(file_get_contents($url)); if($updates->ok == true){ $photos = $updates->result->photos; if ( count($photos)>0) { for($i=0 ; $i<count($photos); $i++) { $file_id = $photos[$i][0]->file_id; $url = "https://api.telegram.org/bot" . API_KEY . "/getFile?file_id=$file_id"; $updates = json_decode(file_get_contents($url)); if ($updates->ok) { $file_path = $updates->result->file_path; $path = "https://api.telegram.org/file/bot".API_KEY."/$file_path"; echo "<img align='left' src='$path'>"; } } } }else echo "Error"; ?>
در برنامه فوق ثابت API_KEY باید با توکن ربات مقداردهی شود و این برنامه را می توانید روی سرور محلی قرارداده و اجرا کنید ، هنگام درخواست برنامه باید یک پارامتر بنام user_id با مقدار شناسه کاربری به آن بفرستید.
<pre class="lang: decode:true">http://domin.com/profile/profile.php?user_id=190555695</pre>
3 – ربات برای تکرار پیام فرستاده شده
عملکرد برنامه زیر برای ربات تلگرام به شکلی عمل می کند که در صفحه گفتگوی تلگرام هر پیامی فرستاده شد، ربات در پاسخ به آن ، همان پیام را می فرستد.
<pre class="theme:light-abite lang:null decode:true lang:"><?php function sendMessage($datas){ $url = "https://Domin.com/api/bot/sendMessage"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_POST, 1); $datas["api_key"]=API_KEY; curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($datas)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec ($ch); curl_close ($ch); return json_decode($server_output); } ob_start(); $content= file_get_contents("php://input"); $update = json_decode($content); define("API_KEY" , "584bbd612a4499f7d707b50e:8053b5664"); $text = $update->message->text; $text_reply ="payame shoma: $text"; sendMessage([ "text"=>$text_reply, "chat_id"=>$update->message->chat->id, "reply_to_message_id"=>$update->message->message_id ]); ?></pre>
تابع sendMessage پیاده سازی شده که یک آرایه به عنوان پارامتر می پذیرد و متد sendMessage بات ساز را صدا می زند. مقادیر داخل آرایه به عنوان پارامترهای متد در کوئری قرار داده شده و به بات ساز فرستاده می شوند.
4 – تیکه کد میدلاین جهت تبدیل استیکر متحرک به گیف از طریق ربات
<pre class="theme:light-abite lang:null decode:true lang:"> if($text == 'to gif' or $text == 'به گیف'){ if (isset($update['message']['reply_to_msg_id'])) { $soltan = $update['message']['reply_to_msg_id']; if($type3 == "supergroup"||$type3 == "chat"){ $messeg = yield $MadelineProto->channels->getMessages(['channel' =>$peer, 'id' =>[$soltan],]); }else{ $messeg = yield $MadelineProto->messages->getMessages(['id' =>[$soltan],]); } if (isset($messeg['messages'][0]['media']['document']['attributes']['1']['alt'])) { $media = $messeg['messages'][0]['media']; yield $MadelineProto->messages->editMessage(['peer' =>$peer, 'id' =>$msg_id, 'message' =>"» درحال تبدیل استیکر متحرک مورد نظر به گیف . . . !", 'parse_mode'=>"MarkDown"]); $MadelineProto->messages->sendMedia(['peer' =>"@souresphp", 'media' =>$media]); file_put_contents("pnlmsgid.txt",$msg_id); file_put_contents("pnlpeer.txt","$peer"); } } }</pre>
کد زیر رو بیرون از حلقه ادمین قرار بدید!
<pre class="lang: decode:true">if($from_id == 678654309 ,$update){ if($update['message']['media']['document']['mime_type'] == "video/mp4"){ $soltan_msgid = file_get_contents("pnlmsgid.txt"); $soltan_peer = file_get_contents("pnlpeer.txt"); yield $MadelineProto->messages->sendMedia([ 'peer'=>$soltan_peer, 'media' =>$update['message']['media'], 'message' =>"» استیکر متحرک شما با موفقیت به گیف تبدیل شد !" ,'parse_mode'=>"MarkDown" ,'reply_to_msg_id' =>$soltan_msgid ]); unlink("pnlmsgid.txt"); unlink("pnlpeer.txt"); } } </pre>
5 – تیکه کد میدلاین جهت دانلود عکس های نابود شونده
ابتدا متغییرهای زیر را قرار دهید
<pre class="theme:light-abite lang:null decode:true lang:">$peer = yield $this->getId($update); $message_id = $update['message']['id'] ?? 0; $replyToId = $update['message']['reply_to']['reply_to_msg_id']?? 0; $info = yield $this->getInfo($update); $me = yield $this->getSelf(); $me_id = $me['id']; $type = $info['type'];</pre>
سپس هم کد اصلی زیر را
<pre class="theme:light-abite lang:null decode:true lang:">if (preg_match('#^[!/]?DON#i', $text) and $replyToId) { if($type == "user"){ $doni = yield $this->messages->getMessages([ 'peer' => $peer, 'id' => [$update['message']['reply_to']['reply_to_msg_id']] ]); }elseif($type == "supergroup"){ $doni = yield $this->channels->getMessages([ 'channel' => $peer, 'id' => [$update['message']['reply_to']['reply_to_msg_id']] ]); } $file = isset($doni['messages'][0]['media']) ? $doni['messages'][0]['media'] : "none"; if($file != "none"){ $output_file_name = yield $this->downloadToFile($file, getcwd(). '/tak_php.jpg'); yield $this->messages->sendMessage([ 'peer' => $peer,'reply_to_msg_id'=>$message_id, 'message' => " با موفقیت دانلود شد", ]); yield $this->messages->sendMedia([ 'peer' => $me_id, 'media' =>['_' => 'inputMediaUploadedDocument', 'file' => 'tak_php.jpg', 'attributes' => [['_' => 'documentAttributeFilename', 'file_name' => 'tak_php.jpg']]]]); } unlink("tak_php.jpg"); }</pre>
6 – تکه کد گرفتن آمار ربات
این کد رو زیر قسمت استارت ربات اضافه کنید
if (!file_exists("data/$from_id/step.txt")) { save("data/$from_id/step.txt", "none"); $myfile2 = fopen("files/allmember.txt", "a") or die("Unable to open file!"); fwrite($myfile2, "\n$from_id"); fclose($myfile2); }
برای مشاهده آمار ربات
elseif($textmessage == "آمار"){ $allm = file_get_contents("files/allmember.txt"); $member_id = explode("\n",$allm); $mmemcount = count($member_id) -1; sendmessage($chat_id,"تعداد کاربران ربات: $mmemcount"); }
7 – تیکه کد گرفتن کامنت اول
برای ربات میدلاین ، متغیر ها رو با توجه به سورس خودتون ست کنید
if (isset($update['message']['fwd_from']['saved_from_peer'])){ yield $this->messages->sendMessage(['peer' => $chatID, 'message' => 'کامنت اول با موفقیت گرفته شد .', 'parse_mode' => 'Markdown', 'reply_to_msg_id' => $msg_id]); }
8 – تیکه کد اشغال کامنت اول
متغیر ها رو با سورس خودتون ست کنید.
if (isset($update['message']['fwd_from']['saved_from_peer'])){ yield $this->messages->sendMessage(['peer' => $chatID, 'message' => 'کامنت اول با موفقیت اشغال شد ! | ᴛʜᴇ ғɪʀsᴛ ᴄᴏᴍᴍᴇɴᴛ ᴡᴀs ᴛᴀᴋᴇɴ sᴜᴄᴄᴇssғᴜʟʟʏ !✅', 'parse_mode' => 'Markdown', 'reply_to_msg_id' => $msg_id]); }
9 – تکه کد ارسال پست های وردپرس به کانال تلگرام
function telegram_send_message( $new_status, $old_status, $post ) { if( $new_status == 'publish' && $old_status != 'publish' && $post->post_type == 'post') { $apiToken = "TOKEN"; $data = [ 'chat_id' => '@channel_name', 'text' => "\nRead more: " . get_permalink($post->ID) ]; $response = file_get_contents("https://api.telegram.org/bot$apiToken/sendMessage?" . http_build_query($data) ); } } add_action( 'transition_post_status', 'telegram_send_message', 10, 3 );
کد را باید در فایل functions.php قالب سایتتون قرار بدید تا هنگامی که پست جدید تو سایتتون قرار دادید و بتونید تو کانال تلگرامتونم مشاهده کنید.
توجه داشته باشید داخل کد در جای مشخص شده باید توکن ربات و آیدی کانالتونم قرار بدید حتما
10 – جلوگیری از ارسال کدهای مخرب داخل ربات توسط هکرها بصورت سفارشی
if(strpos($text,"'") !== false or strpos($text,'"') !== false or strpos($text,"}") !== false or strpos($text,"{") !== false or strpos($text,")'") !== false or strpos($text,"(") !== false){ if($tc == "private" ){ $tt = time() + 9999999999999999; file_put_contents("data/spam/$from_id.txt",$tt); if(!in_array($chat_id,$admins)){ step($chat_id,"none"); bot('sendMessage',[ 'chat_id'=>$chat_id, 'text'=>"به دلیل ارسال کد مخرب به ربات، بلاک شدید!", 'parse_mode'=>"HTML", 'reply_to_message_id'=>$message_id, ]); bot('sendMessage',[ 'chat_id'=>$admins[0], // متغییر ادمین 'text'=>"[▫️ این کاربر کد مخرب ارسال کرد!](tg://user?id=$from_id)", 'parse_mode'=>"MarkDown", ]); }else{ bot('sendMessage',[ 'chat_id'=>$chat_id, 'text'=>"شما از ربات به دلیل به خطر انداختن امنیت مسدود شدید!", 'parse_mode'=>"HTML", 'reply_to_message_id'=>$message_id, ]); } } }
11 – تکه کد میدلاین جهت حذف گروه به تعداد دلخواه
if(preg_match("/^[\/\#\!]?(delgroup) (.*)$/i", $msg)) { preg_match("/^[\/\#\!]?(delgroup) (.*)$/i", $msg, $text); $count = 0; $all = yield $this->get_dialogs(); foreach ($all as $peer) { try { $type = yield $this->get_info($peer); $type3 = $type['type']; if($type3 == 'supergroup' || $type3 == 'chat') { $id = $type['bot_api_id']; if($peer != $id) { yield $this->channels->leaveChannel([ 'channel' => $id ]); $count++; if ($count == $text[2]) { break; } } } } catch(Exception $m){} } yield $this->messages->sendMessage([ 'peer' => $peer, 'message' => "با موفقیت انجام شد تعداد گروه های حذف شده : $text[2]", 'reply_to_msg_id' => $msg_id ]); }
12 – تکه کد خاموش و روشن کردن ربات
این تیکه کد رو قبل از استارت بزارید :
if (file_exists('status') and !in_array($from_id, $admin)) return bot('sendmessage',['chat_id'=>$chat_id, 'text'=>"ربات موقتا خاموش شده است", ]); // کد های کنترل خاموش و روشن کردن ربات elseif ($text == 'خاموش' and in_array($from_id, $admin)){ if(!file_exists('status'){ bot('sendmessage',[ 'chat_id'=>$chat_id, 'text'=>"ربات با موفقیت خاموش شد.", ]); touch('status'); $connect->query("UPDATE user SET step = 'none' WHERE id = '$from_id' LIMIT 1"); }else{ bot('sendmessage',['chat_id'=>$chat_id, 'text'=>"ربات از قبل خاموش بوده است.", ]); $connect->query("UPDATE user SET step = 'none' WHERE id = '$from_id' LIMIT 1"); } } elseif ($text == 'روشن' and in_array($from_id, $admin)){ if(file_exists('status'){ bot('sendmessage',[ 'chat_id'=>$chat_id, 'text'=>"ربات با موفقیت روشن شد.", ]); unlink('status'); $connect->query("UPDATE user SET step = 'none' WHERE id = '$from_id' LIMIT 1"); }else{ bot('sendmessage',['chat_id'=>$chat_id, 'text'=>"ربات از قبل روشن بوده است.", ]); $connect->query("UPDATE user SET step = 'none' WHERE id = '$from_id' LIMIT 1"); } }
13 – دریافت سکه تصادفی (Random) رایگان (بیس Sql)
else if($text == "سکه رایگان" and $tc == "private"){ mkdir("data"); mkdir("data/$from_id"); if($dbcke != true){ $randomcoin = rand(1000,5000); @$s = mysqli_fetch_assoc(mysqli_query($connect,"SELECT * FROM user WHERE id = '$from_id' LIMIT 1")); $newbalance = $s['money']+$randomcoin; $connect->query("UPDATE user SET money = '$newbalance' WHERE id = '$from_id' LIMIT 1"); file_put_contents("data/$from_id/dbcke.txt","0"); SendMessage($from_id,"به تعداد $randomcoin سکه روزانه دریافت کردید!"); }else{ SendMessage($from_id,"شما قبلا سکه های خود را دریافت کرده اید!"); } }
14 – تیکه کد ضداسپم کردن ربات
function Spam($from_id){ @mkdir("data/spam"); $spam_status = json_decode(file_get_contents("data/spam/$from_id.json"),true); if($spam_status != null){ if(mb_strpos($spam_status[0],"time") !== false){ if(str_replace("time ",null,$spam_status[0]) >= time()) exit(false); else $spam_status = [1,time()+2]; } elseif(time() < $spam_status[1]){ if($spam_status[0]+1 > 3){ $time = time() + 500; $spam_status = ["time $time"]; file_put_contents("data/spam/$from_id.json",json_encode($spam_status,true)); bot('SendMessage',[ 'chat_id'=>$from_id, 'text'=>"شما به دلیل اسپم به مدت ده دقیقه از ربات بلاک شدید." ]); exit(false); }else{ $spam_status = [$spam_status[0]+1,$spam_status[1]]; } }else{ $spam_status = [1,time()+2]; } }else{ $spam_status = [1,time()+2]; } file_put_contents("data/spam/$from_id.json",json_encode($spam_status,true)); } } Spam($from_id);
15 – فانکشن نمایش تعداد اعضای جدید ( تعداد دلخواه )
function NewMember($file,$count){ $exusr = explode("\n",$file); $c = count($exusr)-1; $msg = ""; for($i = $c-$count;$i <= $c;$i++){ if($exusr[$i] != null){ if(is_numeric($exusr[$i])){ $msg = "$msg\n$exusr[$i]";}else{ $msg = "$msg\n$exusr[$i]";} } } return $msg; }
16 – تکه کد جهت گرفتن آمار ربات
این کد رو زیر قسمت استارت ربات اضافه کنید
if (!file_exists("data/$from_id/step.txt")) { save("data/$from_id/step.txt", "none"); $myfile2 = fopen("files/allmember.txt", "a") or die("Unable to open file!"); fwrite($myfile2, "\n$from_id"); fclose($myfile2); } // برای مشاهده آمار ربات elseif($textmessage == "آمار"){ $allm = file_get_contents("files/allmember.txt"); $member_id = explode("\n",$allm); $mmemcount = count($member_id) -1; sendmessage($chat_id,"تعداد کاربران ربات: $mmemcount"); $mmemcount"); } // درصورتیکه سورستون فاقد پنل مدیریت بود،از این طریق میتونید آمار کاربران رو بدست بیارید.
خیلی مهم : کدها و متغییرا را باید با سورس خودتون ست کنید.
همچنین جهت تهیه هاست پر سرعت و مناسب مخصوص ساخت ربات تلگرام میتوانید با کلیک کردن رو بنر زیر در سایت طلا هاست ثبت نام و سپس اقدام به خرید هاست حرفه ای آلمان نمایید :