2017-05-07 141 views
0

如何讓我的Telegram Bot與用戶互動?例如: -如何等待我的Telegram Bot傳入消息?

用戶:/買

博特:你想要買什麼?

用戶:冰淇淋

機器人:您已成功購買冰淇淋!

所以,我該怎麼辦呢?

switch($message) { 
[...] 
case "/buy": 
    sendMessage($chatID, "What do you want to buy?"); 
    //Here I need your help :D 
    break; 
} 

回答

0

假設您使用webhook接收更新,您的php腳本會在您接收的每個更新中再次運行。 在這種情況下,您將需要保存您正在檢查每次你的機器人收到一條消息,指示你下一步要做什麼的用戶一定的「地位」。 一個例子是:

switch($message) { 
case "/buy": 
    sendMessage($chatID, "What do you want to buy? Icecream, Water or Sprite?"); 
    $storage[$chatID]['status'] = 'awaitingProductChoice'; 
    saveStorage(); 
    break; 
} 

您需要保存$存儲[$用戶id]不知何故(saveStorage();)。理想情況是使用數據庫,如果你沒有,使用file_put_contents('storage.json', json_encode($storage));或類似的東西來序列化它。由於電報服務器不發送cookie,因此SESSIONS將不起作用。

然後將一些類似的代碼,你的開關語句之前:

$storage = readStorage(); // load from DB or file_get_contents from file 
if ($storage[$chatID]['status'] === 'awaitingProductChoice') { 
    // return " You have successfully bought Icecream!" 
    $storage[$chatID]['product choice'] = $message['text']; 
} else if ($storage[$chatID]['status'] === 'other stuff') { 
    // other step 
} 
else switch($message) [...] 
+0

你的回答很有趣,但你可以請編輯您的回答我的問題編輯?我的意思是:我怎樣才能將傳入的答案保存爲字符串或數組? – Deeonix

+0

@Deeonix這很簡單,只需保存用戶發給你的文本即可。我編輯了我的答案,也許它可以幫助你。 –

+0

readStorage()和saveStorage()看起來應該如何? – Deeonix