YaKotikTvoy

method_inlineMarkup2.php

Jul 13th, 2023 (edited)
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.82 KB | None | 0 0
  1. <?php
  2. //Метод, который отправляет сообщение с клавиатурой
  3. const TOKEN = 'Токен';
  4. const BASE_URL = 'https://api.telegram.org/bot';
  5.  
  6. function sendRequest(string $method, array $params = []) : array {
  7.     if(!empty($params))
  8.         $url = BASE_URL . TOKEN . '/' . $method . '?' . http_build_query($params);
  9.     else
  10.         $url = BASE_URL . TOKEN . '/' . $method;
  11.     return json_decode(file_get_contents($url), JSON_OBJECT_AS_ARRAY);
  12. }
  13. function generateKeyboard(string $numberquestion, string $callback_data = null) : array{
  14.     return ['inline_keyboard' => [
  15.             [
  16.                 ['text' => 'Ответ 1', 'callback_data' => $callback_data . "\n" . "Ответ 1" . " - вопрос " . $numberquestion],
  17.                 ['text' => 'Ответ 2', 'callback_data' => $callback_data . "\n" . "Ответ 2" . " - вопрос " . $numberquestion], //Первый ряд кнопок
  18.             ],[
  19.                 ['text' => 'Ответ 3', 'callback_data' => $callback_data . "\n" . "Ответ 3" . " - вопрос " . $numberquestion],
  20.                 ['text' => 'Ответ 4', 'callback_data' => $callback_data . "\n" . "Ответ 4" . " - вопрос " . $numberquestion], //Второй ряд кнопок
  21.             ]
  22.         ]
  23.     ];
  24. }
  25.  
  26. //Получаем обновление
  27. $update = json_decode(file_get_contents('php://input'),JSON_OBJECT_AS_ARRAY);
  28.  
  29. if(isset($update['callback_query'])){
  30.     sendRequest('sendMessage', [
  31.                 'chat_id'=> $update["callback_query"]["message"]["chat"]["id"],
  32.                 'text'=>"Ответ: " . $update["callback_query"]["data"] ." ". end($update['callback_query']['data'])
  33.             ]);
  34.     switch(end($update['callback_query']['data'])){
  35.         case '1':
  36.             //Отправка клавиатуры
  37.             sendRequest('sendMessage', [
  38.                 'chat_id'=> $update["callback_query"]["message"]["chat"]["id"],
  39.                 'text'=>'Вопрос 2',
  40.                 'reply_markup'=>json_encode(generateKeyboard('2',$update["callback_query"]["data"]))
  41.             ]);
  42.            
  43.             break;
  44.         case '2':
  45.             sendRequest('sendMessage', [
  46.                 'chat_id'=> $update["callback_query"]["message"]["chat"]["id"],
  47.                 'text'=>'Вопрос 3',
  48.                 'reply_markup'=>json_encode(generateKeyboard('3',$update["callback_query"]["data"]))
  49.             ]);
  50.             break;
  51.         case '3':
  52.             sendRequest('sendMessage', [
  53.                 'chat_id'=> $update["callback_query"]["message"]["chat"]["id"],
  54.                 'text'=>'Вопрос 4',
  55.                 'reply_markup'=>json_encode(generateKeyboard('4',$update["callback_query"]["data"]))
  56.             ]);
  57.             break;
  58.         default:
  59.             sendRequest('sendMessage', [
  60.                 'chat_id'=> $update["callback_query"]["message"]["chat"]["id"],
  61.                 'text'=>"Итог:\n" . $update["callback_query"]["data"]
  62.             ]);
  63.             break;
  64.     }
  65. }
  66. if(isset($update['message'])){
  67.     sendRequest('sendMessage', [
  68.                 'chat_id'=> $update["message"]["chat"]["id"],
  69.                 'text'=>'Вопрос 1',
  70.                 'reply_markup'=>json_encode(generateKeyboard('1'))
  71.             ]);
  72. }
  73. ?>
Advertisement
Add Comment
Please, Sign In to add comment