在电报机器人中逐步插入数据

时间:2017-09-05 06:30:23

标签: php telegram-bot php-telegram-bot

我用php创建了一个电报机器人。我需要让用户在运行命令/order时逐步插入数据。我做了一个例子:

  

用户:/ order

     

Bot :我会帮您订购

     

Bot :插入名称

     

用户:Ciccio(他输入了名字)

     

Bot :好的,现在插入你的姓氏

     

用户:Pasticcio(他已输入姓氏)

依旧......

我以为我是以正确的方式达到我的目的......但不是......某些东西不起作用......这是我的代码:

elseif(strcmp($text, "/order") === 0) <-Here the command
{
    $response =
        "I will help you.\n"
        ."\n"
        ."Insert your name:";

    $parameters = ['chat_id' => $chatId, "text" => $response, "parse_mode" => "Markdown"];
    $parameters["method"] = "sendMessage";
    echo json_encode($parameters);

    $action_parameters = ['chat_id' => $chatId, "action" => "typing"];
    $action_parameters["method"] = "sendChatAction";
    echo json_encode($action_parameters);

    $parameters2 = array('chat_id' => $chatId, "text" => "good! Now insert the surname");
    $parameters2["method"] = "sendMessage";
    echo json_encode($parameters2);
}
在我看到第一条消息之后,代码停止了......就像我第一次执行echo json_encode($parameters);之后再没有代码运行...

我如何达到目的?

谢谢

2 个答案:

答案 0 :(得分:0)

收到Webhook更新后,您是否使用JSON响应?

如果是,您需要发出请求,而不是将其打印到HTTP Response Body并将用户输入记录到您自己的数据库中。

答案 1 :(得分:0)

对于您的机器人收到的任何消息,您检查机器人中的用户步骤,您将发送正确的功能(所以正确的问题)。

要做到这一点,你必须存储用户&#39;脚步。请阅读my answer to this question