обновления в телеграмме бота switch()

Я сделал этот код в своем файле .php, где я установил webHook, который работает хорошо.

$token = "my token";
$website = "https://api.telegram.org/bot" . $token . "/";
$updates = file_get_contents("php://input");
$updates = json_decode($updates, true);
$text = $updates["message"]["text"];
$chatID = $updates["message"]["chat"]["id"];

switch($text){
  case "/prova_gratuita":
        if(check($chatID)){
          sendMessage($chatID, "Are you sure? Demo is available only one time. Write confirm to continue");
          switch($text){
            case "confirm":
                 ...
                 break;
          } 
        }

Второй switch() не работает. Почему? Что я могу сделать? Я знаю, что должен обновить значение $text, но не знаю, как это сделать.


person Riccardo    schedule 22.01.2017    source источник
comment
Почему это должно работать?   -  person u_mulder    schedule 22.01.2017
comment
Извините, я не закончил вопрос. @u_mulder   -  person Riccardo    schedule 22.01.2017


Ответы (1)


Я думаю, что ошибка в том, как вы поставили проблему. Каждый ввод бота — это вызов этого WebHook. Тогда $ text не может быть аггорнато таким образом.

Также следует включить в первый переключатель «дело» второго.

$token = "my token";
$website = "https://api.telegram.org/bot" . $token . "/";
$updates = file_get_contents("php://input");
$updates = json_decode($updates, true);
$text = $updates["message"]["text"];
$chatID = $updates["message"]["chat"]["id"];

switch($text){
    case "/prova_gratuita":
        if(check($chatID))    sendMessage($chatID, "Are you sure? Demo is available only one time. Write confirm to continue");
    case "confirm":
    ...

 }

Каждый раз, когда вы отправляете сообщение боту, он делает вызов WebHook. Таким образом, чтобы изменить состояние $updates, поэтому даже $text скрипт должен перезапуститься

person Matteo Enna    schedule 24.01.2017
comment
Я понимаю. Спасибо - person Riccardo; 25.01.2017
comment
Каждый раз, когда вы отправляете сообщение боту, он делает вызов WebHook. Таким образом, чтобы изменить состояние $updates, поэтому даже $text скрипт должен перезапуститься - person Matteo Enna; 25.01.2017
comment
Sisi adesso ci sono arrivato. Grazie di Nuovo - person Riccardo; 25.01.2017
comment
Пожалуйста, добавьте это также часть ответа :) - person Matteo Enna; 25.01.2017