2017-09-05 79 views
0

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

用户:/为了

博特:我会帮你作出命令

博特:将名称

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

博特:好了,现在插入您的姓氏

用户: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);没有代码跑了...

我怎样才能达到我的目的?

谢谢

回答

0

您是否在接收Webhook更新时使用JSON响应?

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

+0

mmm,是的,这是一个JSON响应......我想我做的一切都是错的......你说的“提出请求”是什么意思?你有一个例子吗? – Ciccio

0

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

要做到这一点,你必须存储用户的步骤。请阅读my answer to this question