电报机器人开关更新()

时间:2017-01-22 11:42:17

标签: php webhooks telegram-bot php-telegram-bot telegram-webhook

我在我的.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的值,但我不知道我该怎么做

1 个答案:

答案 0 :(得分:0)

我认为错误是你如何设置问题。 每个机器人输入都是对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