2017-09-02 31 views
0

我想編寫一個電報機器人,所以當我要接收來自用戶的消息時,我現在應該關於他/她設置給我的最後一條消息,以及他/她找到了!所以我應該存儲用戶的會話(我瞭解這一點,當我搜索),但我不知道我到底應該做什麼?如何在我的分機中存儲電報機器人用戶的會話

我知道我需要一個表中存儲用戶ID分貝,ChatId但我不知道這些:

1.如何使一個根步驟,並將它們存儲在數據庫(我的意思是如何我瞭解用戶現在位於何處)

2.我需要將其他列存儲爲會話嗎?

3.我應該在數據庫中存儲多少條消息?每個消息我需要一行嗎?

回答

2

如果您只需將會話存儲在數據庫中,則不需要存儲消息。也許你可能想要存儲消息,但它不一定相關。

讓我們假設你的機器人中有一個「首選項」菜單,用戶可以在其中編寫輸入。你問的姓名,年齡,性別等 如何做你知道用戶什麼時候的它是關於名稱或性別等寫入輸入?

你在你的數據庫保存會話。當機器人接收到消息時,您檢查用戶所處的會話是否運行正確的功能。

一個簡單的解決方案可能是一個sql數據庫。 主鍵列是電報用戶ID(你,如果它的預期在私人和羣聊工作都還可以添加聊天ID列),並在登錄用戶的步驟「會話」列文本。會話列默認情況下可以爲NULL。如果機器人預計性別(因爲用戶發出/性別命令),你可以更新列「會話」與「性別」一詞讓郵件到達時,你知道如何處理它檢查用戶ID和性別欄一旦你運行了正確的函數,你就會再次更新NULL列「session」。

0

您可以創建這些列的數據庫。

用戶名,ChatID,國家,姓名,年齡,對每個傳入更新性別...

如果用戶存在於你再DB在最後檢查用戶的國家,並做出適當的反應,並更新狀態,您將檢查。