زمان کنونی: 2019/04/20، 03:30 PM درود مهمان گرامی! (ورودثبت نام)
کاربران عزیز برای طرح هر گرونه سوال مرتبط با موضوع انجمن لطفا ابتدا در انجمن عضو شده و سپس با ورود ب بخش مورد نظر سوالتان را مطرح کنید.



امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
تکه کد پشتیبانی برای ربات های تلگرام به زبان php
#1
تکه کد پشتیبانی برای ربات های تلگرام به زبان php

ب همراه قابلیت بن کردن کاربر

ابتدا در ربات خود دکمه ای با عنوان "پشتیبانی" ایجاد کنید و سپس از ساختار زیر استفاده کنید.


تکه کد پشتیبانی:

کد php:
elseif ($text=="?پشتیبانی")
{
 
file_put_contents("data/$chat_id/command.txt","support");
 
bot('sendmessage',[
 
   'chat_id'=>$chat_id,
 
   'text'=>"? پیام خود را ارسال کنید :",
 
   'parse_mode'=>'HTML',
 
   'reply_markup'=>json_encode([
 
   'keyboard'=>[
 
       [['text'=>"↪️ بازگشت"]],
 
   ],'resize_keyboard'=>true,
 
   ])
 
   ]);
 
   
}


elseif (
$command == 'support'){
if (!
in_array($chat_id$blist)){
 
   bot("forwardMessage",['chat_id' =>$admin,'from_chat_id'=>$chat_id,'message_id' => $message_id]);
 
   sendmessage($chat_id,"✅ پیام شما ارسال شد.","HTML");
} else {
file_put_contents("data/$chat_id/command.txt","none");
sendmessage($chat_id,"⛔️ شما بدلیل تخلف مسدود شده اید","HTML");
}
}
elseif (
$chat_id == $admin and $reply){
 
   if($text == "/ban"){
 
       if(!in_array($re_id$blist)){
 
       file_put_contents("data/banlist.txt","\n"$re_id,FILE_APPEND);
 
       sendmessage($chat_id,"❌ کاربر مسدود شد .","HTML");
 
        
    
}
 
   elseif($text == "/unban"){
 
       if(in_array($re_id$blist)){
 
       $bli str_replace("\n" $re_id,'',$banlist);
 
       file_put_contents("data/banlist.txt"$bli);
 
       sendmessage($chat_id,"✅ کاربر آزاد شد .","HTML");
 
       }
 
   }else{
 
       sendmessage($re_id,$text,"HTML");
 
       sendmessage($chat_id,"✅ پیام شما ارسال شد.","HTML");
 
   }



حتما مطمئن شوید که توابع و متغیر های لازم را در سورس رباتتان تعریف کرده اید!


تابع bot:

کد php:
function bot($method,$datas=[]){
$url "https://api.telegram.org/bot".API_KEY."/".$method;
$ch curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$datas);
$res curl_exec($ch);
if(
curl_error($ch)){
var_dump(curl_error($ch));
}else{
return 
json_decode($res);
}



تابع sendmessage:

کد php:
function sendmessage($chat_id$text){
    
bot('sendmessage',['chat_id'=>$chat_id,'text'=>$text]);
    } 


تابع forwardmessage:

کد php:
function forwardmessage($chatid,$from_chat,$message_id){
    
bot('forwardmessage',['chat_id'=>$chatid,'from_chat_id'=>$from_chat,'message_id'=>$message_id]);
    } 


متغیر های تلگرام:

کد php:
$update json_decode(file_get_contents('php://input'));
$message $update->message;
$from_id $message->from->id;
$chat_id $message->chat->id;
$text $message->text;
$reply $update->message->reply_to_message;
$re_id $update->message->reply_to_message->forward_from->id


متغیر های کاربر:

کد php:
$command file_get_contents("data/$from_id/command.txt");
$banlist file_get_contents("data/banlist.txt");
$blist explode("\n"$banlist); 


برای اینکه ربات بتواند فایل command.txt را در فولدری مختص کاربر در مسیر مورد نظر ایجاد کند حتما باید فولدر های لازم قبلا ایجاد شده باشد.
می توانید فولدر data را خودتان ایجاد کنید و فولدر مختص کاربر را هم با دستور mkdir در شرط استارت تعریف کنید کهبا استارت کردن کاربر فولدر مورد نظر برای او ایجاد شود.

کد php:
mkdir("data/$chat_id"); 


که با اضافه کردن این دستور ب شرط استارت ربات کدی مانند زیر خواهید داشت:

کد php:
if ($text == "/start"){
 
   mkdir("user/$chat_id");



دستورات دیگری را هم که در شرط استارت دارید می توانید ب همان شکل نگه دارید.

حتما توجه کنید که تا زمانی که در فایل command.txt در فولدر مربوط ب کاربر دستور support قرار دارد روند پشتیبانی همچنان ادامه دارد و تمام پیام های ارسالی کاربر ب ادمین ربات ارسال می شود، برای اتمام پشتیبانی ما دکمه بازگشت را برای کاربر نمایش دادیم تا کاربر بتواند از حالت پشتیبانی خارج شود اما این کافی نیست!!
برای اتمام کار دکمه پشتیبانی علاوه بر قرار دادن دکمه بازگشت لازم است در شرط دکمه بازگشت مقدار support را نیز با دستوری مانند زیر تغییر دهیم:

کد php:
if ($text == "↪️ بازگشت"){
file_put_contents("data/$from_id/command.txt","none");

پاسخ




کاربرانِ درحال بازدید از این موضوع: 1 مهمان