نقل قول نوشته اصلی توسط mohammad-gh نمایش پست ها
آقا جدا دستت درد نکنه واقعا عالی بود ٬من کارم راه افتاد و قول میدم هر پیشرفتی بود همین جا بزارم
فقط یه سوال تو این کد باید ادرس سایت رو بزاریم
کد PHP:
define('webhook_url''https://my-site.example.com/secret-path-for-webhooks/'); 
فکر میکنم به نوعی شبیه rss سایت عمل کنه و احتمالاً ربات از طریق این لینک اطلاعاتی از آدرس که روی سایت هست رو استخراج و ارسال کنه یا بلعکس !! مطلب زیر در جستجوی گوگل بدست آمد

وب هوک اساسا یک رویداد اطلاع رسانی است که به url انتخابی شما ارسال میشود.کاربران میتوانند آن را برای رویداد هایی که اتفاق میفتد روی یک سایت برای فراخوانی در سایت های دیگر پیکر بندی کنند.
بنابراین وب هوک ها برای ادغام خدمات شخص ثالث و دیگر api های خارجی پشتیبانی کننده از آن ها بسیار مفید هستند

- - - Updated - - -

سلام - یکی از دوستان این کد رو بازنویسی کنه میخوام داخل گروه تلگرامی هرکس متنی یا چیزی ارسال کرد ربات پاسخی رندوم بده و امکان ارسال استیکر هم داشته باشه

دوستانی که کدهای اول این تاپیک روی هاستشون جواب نمیداد و ربات هیچ عکس العملی نشون نمیداد از همین کد استفاده کنید و حالشو ببرید


کد PHP:
 <?php
define
('BOT_TOKEN''tokeeeeeeeeen');
define('API_URL''https://api.telegram.org/bot'.BOT_TOKEN.'/');

function 
apiRequestWebhook($method$parameters) {
  if (!
is_string($method)) {
    
error_log("Method name must be a string\n");
    return 
false;
  }

  if (!
$parameters) {
    
$parameters = array();
  } else if (!
is_array($parameters)) {
    
error_log("Parameters must be an array\n");
    return 
false;
  }

  
$parameters["method"] = $method;

  
header("Content-Type: application/json");
  echo 
json_encode($parameters);
  return 
true;
}

function 
exec_curl_request($handle) {
  
$response curl_exec($handle);

  if (
$response === false) {
    
$errno curl_errno($handle);
    
$error curl_error($handle);
    
error_log("Curl returned error $errno$error\n");
    
curl_close($handle);
    return 
false;
  }

  
$http_code intval(curl_getinfo($handleCURLINFO_HTTP_CODE));
  
curl_close($handle);

  if (
$http_code >= 500) {
    
// do not wat to DDOS server if something goes wrong
    
sleep(10);
    return 
false;
  } else if (
$http_code != 200) {
    
$response json_decode($responsetrue);
    
error_log("Request has failed with error {$response['error_code']}{$response['description']}\n");
    if (
$http_code == 401) {
      throw new 
Exception('Invalid access token provided');
    }
    return 
false;
  } else {
    
$response json_decode($responsetrue);
    if (isset(
$response['description'])) {
      
error_log("Request was successfull: {$response['description']}\n");
    }
    
$response $response['result'];
  }

  return 
$response;
}

function 
apiRequest($method$parameters) {
  if (!
is_string($method)) {
    
error_log("Method name must be a string\n");
    return 
false;
  }

  if (!
$parameters) {
    
$parameters = array();
  } else if (!
is_array($parameters)) {
    
error_log("Parameters must be an array\n");
    return 
false;
  }

  foreach (
$parameters as $key => &$val) {
    
// encoding to JSON array parameters, for example reply_markup
    
if (!is_numeric($val) && !is_string($val)) {
      
$val json_encode($val);
    }
  }
  
$url API_URL.$method.'?'.http_build_query($parameters);

  
$handle curl_init($url);
  
curl_setopt($handleCURLOPT_RETURNTRANSFERtrue);
  
curl_setopt($handleCURLOPT_CONNECTTIMEOUT5);
  
curl_setopt($handleCURLOPT_TIMEOUT60);

  return 
exec_curl_request($handle);
}

function 
apiRequestJson($method$parameters) {
  if (!
is_string($method)) {
    
error_log("Method name must be a string\n");
    return 
false;
  }

  if (!
$parameters) {
    
$parameters = array();
  } else if (!
is_array($parameters)) {
    
error_log("Parameters must be an array\n");
    return 
false;
  }

  
$parameters["method"] = $method;

  
$handle curl_init(API_URL);
  
curl_setopt($handleCURLOPT_RETURNTRANSFERtrue);
  
curl_setopt($handleCURLOPT_CONNECTTIMEOUT5);
  
curl_setopt($handleCURLOPT_TIMEOUT60);
  
curl_setopt($handleCURLOPT_POSTFIELDSjson_encode($parameters));
  
curl_setopt($handleCURLOPT_HTTPHEADER, array("Content-Type: application/json"));

  return 
exec_curl_request($handle);
}

function 
processMessage($message) {
  
// process incoming message
  
$message_id $message['message_id'];
  
$chat_id $message['chat']['id'];
  if (isset(
$message['text'])) {
    
// incoming text message
    
$text $message['text'];

    if (
strpos($text"/start") === 0) {
      
apiRequestJson("sendMessage", array('chat_id' => $chat_id"text" => 'Hello''reply_markup' => array(
        
'keyboard' => array(array('Hello''Hi')),
        
'one_time_keyboard' => true,
        
'resize_keyboard' => true)));
    } else if (
$text === "Hello" || $text === "Hi") {
      
apiRequest("sendMessage", array('chat_id' => $chat_id"text" => 'Nice to meet you'));
    } else if (
strpos($text"/stop") === 0) {
      
// stop now
    
} else {
      
apiRequestWebhook("sendMessage", array('chat_id' => $chat_id"reply_to_message_id" => $message_id"text" => 'Cool'));
    }
  } else {
    
apiRequest("sendMessage", array('chat_id' => $chat_id"text" => 'I understand only text messages'));
  }
}


define('WEBHOOK_URL''https://my-site.example.com/secret-path-for-webhooks/');

if (
php_sapi_name() == 'cli') {
  
// if run from console, set or delete webhook
  
apiRequest('setWebhook', array('url' => isset($argv[1]) && $argv[1] == 'delete' '' WEBHOOK_URL));
  exit;
}


$content file_get_contents("php://input");
$update json_decode($contenttrue);

if (!
$update) {
  
// receive wrong update, must not happen
  
exit;
}

if (isset(
$update["message"])) {
  
processMessage($update["message"]);
}