假設您使用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) [...]
你的回答很有趣,但你可以請編輯您的回答我的問題編輯?我的意思是:我怎樣才能將傳入的答案保存爲字符串或數組? – Deeonix
@Deeonix這很簡單,只需保存用戶發給你的文本即可。我編輯了我的答案,也許它可以幫助你。 –
readStorage()和saveStorage()看起來應該如何? – Deeonix