[text] aa

Viewer

  1. <?php
  2.  
  3. header('Content-Type: text/html; charset=utf-8'); 
  4.  
  5. $site_dir = dirname(dirname(__FILE__)).'/'; 
  6. $bot_token = '6181611254:AAFdc0IHCf02ss0Y6ec4OnuGdyxMS_wdsy0'; // токен вашего бота
  7. $data = file_get_contents('php://input'); // весь ввод перенаправляем в $data
  8. $data = json_decode($data, true); // декодируем json-закодированные-текстовые данные в PHP-массив
  9.  
  10. $order_chat_id = '815151195';  //chat_id менеджера компании для заявок
  11. $bot_state = ''; // состояние бота, по-умолчанию пустое
  12.  
  13. // Для отладки, добавим запись полученных декодированных данных в файл message.txt, 
  14. // который можно смотреть и понимать, что происходит при запросе к боту
  15. // Позже, когда все будет работать закомментируйте эту строку:
  16. file_put_contents(__DIR__ . '/message.txt', print_r($data, true));
  17.  
  18. // Основной код: получаем сообщение, что юзер отправил боту и 
  19. // заполняем переменные для дальнейшего использования
  20. if (!empty($data['message']['text'])) {
  21.     $chat_id = $data['message']['from']['id'];
  22.     $user_name = $data['message']['from']['username'];
  23.     $first_name = $data['message']['from']['first_name'];
  24.     $last_name = $data['message']['from']['last_name'];
  25.     $text = trim($data['message']['text']);
  26.     $text_array = explode(" ", $text);
  27.  
  28.         // получим текущее состояние бота, если оно есть
  29.         $bot_state = get_bot_state ($chat_id);
  30.  
  31.     // если текущее состояние бота отправка заявки, то отправим заявку менеджеру компании на $order_chat_id
  32.     if (substr($bot_state, 0, 6) == '/order') {
  33.         $text_return = "
  34. Заявка от @$user_name:
  35. Имя: $first_name $last_name 
  36. $text
  37. ";
  38.         message_to_telegram($bot_token, $order_chat_id, $text_return);
  39.         set_bot_state ($chat_id, '');
  40.     }
  41.     // если состояние бота пустое -- то обычные запросы
  42.     else {
  43.     
  44.             // вывод информации Помощь
  45.         if ($text == '/help') {
  46.             $text_return = "Привет, $first_name $last_name, вот команды, что я понимаю: 
  47.     /help - список команд
  48.     /about - о нас
  49.     /order - оставить заявку
  50.     ";
  51.             message_to_telegram($bot_token, $chat_id, $text_return);
  52.             set_bot_state ($chat_id, '/help');
  53.         }
  54.         
  55.         // вывод информации о нас
  56.         elseif ($text == '/about') {
  57.             $text_return = "verysimple_bot:
  58.     Я пример самого простого бота для телеграм, написанного на простом PHP.
  59.     Мой код можно скачивать, дополнять, исправлять. Код доступен в этой статье:
  60.     https://www.novelsite.ru/kak-sozdat-prostogo-bota-dlya-telegram-na-php.html
  61.     ";
  62.             message_to_telegram($bot_token, $chat_id, $text_return);
  63.             set_bot_state ($chat_id, '/about');
  64.         }
  65.         
  66.         // переход в режим Заявки
  67.         elseif ($text == '/order') {
  68.             $text_return = "$first_name $last_name, для подтверждения Заявки введите текст вашей заявки и нажмите отправить. 
  69. Наши специалисты свяжутся с вами в ближайшее время!
  70. ";
  71.             message_to_telegram($bot_token, $chat_id, $text_return);
  72.             set_bot_state ($chat_id, '/order');        
  73.         }
  74.     }      
  75. }
  76.  
  77. // функция отправки сообщения от бота в диалог с юзером
  78. function message_to_telegram($bot_token, $chat_id, $text, $reply_markup = '')
  79. {
  80.     $ch = curl_init();
  81.     $ch_post = [
  82.         CURLOPT_URL => 'https://api.telegram.org/bot' . $bot_token . '/sendMessage',
  83.         CURLOPT_POST => TRUE,
  84.         CURLOPT_RETURNTRANSFER => TRUE,
  85.         CURLOPT_TIMEOUT => 10,
  86.         CURLOPT_POSTFIELDS => [
  87.             'chat_id' => $chat_id,
  88.             'parse_mode' => 'HTML',
  89.             'text' => $text,
  90.             'reply_markup' => $reply_markup,
  91.         ]
  92.     ];
  93.  
  94.     curl_setopt_array($ch, $ch_post);
  95.     curl_exec($ch);
  96. }
  97.  
  98. // сохранить состояние бота для пользователя
  99. function set_bot_state ($chat_id, $data)
  100. {
  101.     file_put_contents(__DIR__ . '/users/'.$chat_id.'.txt', $data);
  102. }
  103.  
  104. // получить текущее состояние бота для пользователя
  105. function get_bot_state ($chat_id)
  106. {
  107.     if (file_exists(__DIR__ . '/users/'.$chat_id.'.txt')) {
  108.         $data = file_get_contents(__DIR__ . '/users/'.$chat_id.'.txt');
  109.         return $data;
  110.     }
  111.     else {
  112.         return '';
  113.     }
  114. }

Editor

You can edit this paste and save as new:


File Description
  • aa
  • Paste Code
  • 28 Mar-2023
  • 5.08 Kb
You can Share it: