Как реализовать сессию для общения двух людей в телеграм боте?
Не могу никак додуматься как сделать так, что бы два человека общались через бота? То есть user1 >message> bot>message>user2 Получается бот выступает посредником, передающий сообщения от одного пользователя - другому
Ответы (2 шт):
Достаточно получить chat_id обоих пользователей. Например, простой текстовый мессенджер в боте:
user1_id = "Первый айдишник"
user2_id = "Второй айдишник"
@bot.message_handler(content_types=["text"])
def send_msgs(msg):
if str(msg.chat.id) == user1_id:
bot.send_message(int(user2_id), msg.text)
elif str(msg.chat.id) == user2_id:
bot.send_message(int(user1_id), msg.text)
Вы можете также дополнить этого бота чтобы он мог отправлять фото, видео и т.д. проверяв тип содержания сообщений через content_type, но тут как знаете
Так, создание диалога, нам потребуется 3 таблички из бд (например sqlite3) в первой (users) вся информация о пользователе , вторая табличка будет "чатом" в будет всего 3 столбца это id, one_user_id и two_user_id , а 3 табличка будет ожиданием собеседника , там будет user_id ну можно добавить еще gender. Код будет таков, мы нажимаем кнопочку, и проверяем есть ли кто-то в ожидании, если нету встаем туда, а если кто-то есть, проверим gender, если gender != mygender тогда удаляем человека с очереди, добавляем себя в "чат" и его к нам. Вот простенькое объяснение )