2017-09-05 82 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