YaKotikTvoy

method_replyInlineMarkup

Jul 12th, 2023
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.85 KB | None | 0 0
  1. <?php
  2. const TOKEN;
  3. const BASE_URL = 'https://api.telegram.org/bot';
  4. $update = json_decode(file_get_contents('php://input'), JSON_OBJECT_AS_ARRAY);
  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.  
  14. function stop(){
  15.   die;
  16. }
  17.  
  18. function generateKeyboard(string $numberquestion, string $callback_data) : array{
  19.   return ['inline_keyboard' => [
  20.       [
  21.         ['text' => 'Ответ 1', 'callback_data' => $numberquestions . ' Ответ 1\n' . $callback_data],
  22.         ['text' => 'Ответ 2', 'callback_data' => $numberquestions . ' Ответ 2\n' . $callback_data], //Первый ряд кнопок
  23.       ],[
  24.         ['text' => 'Ответ 3', 'callback_data' => $numberquestions . ' Ответ 3\n' . $callback_data],
  25.         ['text' => 'Ответ 4', 'callback_data' => $numberquestions . ' Ответ 4\n' . $callback_data], //Второй ряд кнопок
  26.       ]
  27.     ]
  28.   ];
  29. }
  30. //Если обратный вызов, то создаём клавиатуру под конкретный вопрос.
  31. if(array_key_exists("callback_query", $update)){
  32.   $keyboard;
  33.   $questions;
  34.   switch($update["callback_query"]["data"][0]){
  35.     case '1':
  36.       $keyboard = generateKeyboard('2', $update["callback_query"]['data']);
  37.       $questions = '2';
  38.       break;
  39.     case '2':
  40.       $keyboard = generateKeyboard('3', $update["callback_query"]['data']);
  41.       $questions = '3';
  42.       break;
  43.     case '3':
  44.       $keyboard = generateKeyboard('3', $update["callback_query"]['data']);
  45.       $questions = '4';
  46.       break;
  47.     default:
  48.       sendRequest('sendMessage', [
  49.         'chat_id' => $update["callback_query"]["message"]["chat"]["id"],
  50.         'text' => "Ответы на все вопросы:\n"
  51.         ]);
  52.      
  53.       break;
  54.   }
  55.   sendRequest('sendMessage',[
  56.     'chat_id' => $update["callback_query"]["message"]["chat"]["id"],
  57.     'text' => 'Вопрос ' . $questions,
  58.     'reply_markup' => json_encode($keyboard)
  59.   ]);
  60.   stop();
  61. }
  62. //Выдаём самую первую клавиатуру
  63. $keyboard =
  64. ['inline_keyboard' => [
  65.     [
  66.       ['text' => 'Ответ 1', 'callback_data' => '1 Ответ 1\n'],
  67.       ['text' => 'Ответ 2', 'callback_data' => '1 Ответ 2\n'], //Первый ряд кнопок
  68.     ],[
  69.       ['text' => 'Ответ 3', 'callback_data' => '1 Ответ 3\n'],
  70.       ['text' => 'Ответ 4', 'callback_data' => '1 Ответ 4\n'], //Второй ряд кнопок
  71.     ]
  72.   ]
  73. ];
  74. sendRequest(
  75.   'sendMessage',
  76.   [
  77.     'chat_id' => $update["message"]["chat"]["id"],
  78.     'text' => 'Вопрос 1',
  79.     'reply_markup' => json_encode($keyboard),
  80.   ]);
  81. ?>
Advertisement
Add Comment
Please, Sign In to add comment