2017-09-02 1 views
0

Je veux coder un télégramme bot, alors quand je vais recevoir des messages d'un utilisateur, je devrais maintenant parler du dernier message qu'il/elle a mis à moi et dans quelle étape/elle a localisé! donc je devrais stocker des sessions de l'utilisateur (j'ai compris ceci quand j'ai cherché) mais je ne sais pas exactement ce que je devrais faire?Comment stocker des sessions d'un utilisateur de télégramme bot dans mon db

Je sais que je besoin d'une table dans un db qui stocke UserId, ChatId mais je ne sais pas ce:

1. Comment faire une racine pour les étapes et les stocker dans db (je veux dire comment est-ce que je comprends où se trouve l'utilisateur maintenant?)

2. Quelles autres colonnes dois-je stocker en tant que session?

3. Combien de messages dois-je stocker dans la base de données? et ai-je besoin d'une ligne pour chaque message?

Répondre

2

Si vous avez juste à stocker la session dans votre base de données, vous n'avez pas besoin de stocker des messages. Peut-être que vous pourriez vouloir stocker aussi des messages mais ce n'est pas nécessairement lié. Supposons que vous ayez un menu "préférences" dans votre bot où l'utilisateur peut écrire son entrée. Vous demandez le nom, l'âge, le sexe, etc. Comment savez-vous quand l'utilisateur écrit l'entrée de c'est sur le nom ou le genre etc?

Vous sauvegardez des sessions dans votre db. Lorsque le bot reçoit le message, vous vérifiez dans quelle session l'utilisateur se trouve pour exécuter la bonne fonction.

Une solution simple pourrait être une base de données SQL. La colonne de clé primaire est l'ID utilisateur du télégramme (vous pouvez également ajouter une colonne d'identification de chat si elle est destinée à travailler en privé et en groupe) et une colonne "session" TEXT où vous consignez les étapes utilisateur. La colonne de session peut être NULL par défaut. Si le bot attend le genre (parce que l'utilisateur a émis/gender command) vous pouvez mettre à jour la colonne "session" avec le mot "gender" alors quand le message arrive vous savez comment le gérer en vérifiant la colonne de genre de cet identifiant et comme Dès que vous avez exécuté la bonne fonction, vous mettez à nouveau à zéro la colonne "session".

0

Vous pouvez créer une base de données avec ces colonnes.

UserID, ChatID, État, Nom, âge, sexe ...

sur chaque mise à jour d'arrivée vous vérifier si l'utilisateur existe sur vous db puis vérifier l'état de l'utilisateur et répondre de façon appropriée et mettre à jour l'état à la fin .