@kanashii12

Как ответить пользователю через бота?

Алгоритм:
1. Пользователь пишет боту сообщение.
2. Бот пересылает сообщение пользователя в закрытый чат(через forward_message).
3. В закрытом чате админ отвечает на сообщение(через reply)
4. Бот пересылает ответ админа пользователю.
Как сделать 4 пункт?
@bot.message_handler(commands=['start'])
def start_message(message: types.Message):
try:
        # create database
        connect = sqlite3.connect('database.db')
        cursor = connect.cursor()
        cursor.execute("""CREATE TABLE IF NOT EXISTS users_information(id INTEGER,
                                                                 Name TEXT,
                                                                 Username TEXT,
                                                                 Message TEXT)""")
        connect.commit()
        users_id = message.chat.id
        cursor.execute(f"SELECT id FROM users_information WHERE id = {users_id}")
        data = cursor.fetchone()
        # user is not in the database, write in down
        if data is None:
            values = [message.chat.id, message.from_user.first_name, message.from_user.username]
            cursor.execute("INSERT INTO users_information(id, Name, Username) VALUES(?, ?, ?);", values)
            connect.commit()
            connect.close()
        bot.send_message(message.chat.id, f'Hello, {message.from_user.first_name}. Enter text')
    except Exception:
        pass


@bot.message_handler(content_types=['text'])
def get_message(message: types.Message):
# когда пользователь пишет текст записываем ід сообщения в бд
    message_id = [message.message_id, message.chat.id]
    connect = sqlite3.connect('database.db')
    cursor = connect.cursor()
    cursor.execute('UPDATE users_information SET Message = ? WHERE id = ?', message_id)
    connect.commit()
    connect.close()
    bot.forward_message(private_chat, message.chat.id, message.message_id)
# проверка не работает message.chat.id == id админа а должен быть равен private chat
# как сделать что б бот реагировал на текст в закрытом чате
# у бота есть все разрешение в закрытом чате, private mode отключен
    if message.chat.id == private_chat:
        pass
  • Вопрос задан
  • 157 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
Хранить где-то (в БД, например) какое сообщение закрытого чата соответствует какому пользователю. При получении сообщения-ответа в закрытом чате узнать ID отвеченного сообщения, посмотреть в базе, какой пользователь отправил оригинал, переслать текст этому пользователю.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы