Всем привет! Изучил уже массу информации, но так и не пришел к дзену.
Есть телеграм бот, хочу, чтобы он отслеживал действия пользователей, а именно (id, первое касание с ботом, последнее использование)
Код:
import telebot
from telebot import types # для указание типов
import sqlite3
import time
token = 'токен' # токен поменять!
bot = telebot.TeleBot(token)
connection = sqlite3.connect('db.db',check_same_thread = False)
cursor = connection.cursor()
cursor.execute("""CREATE TABLE IF NOT EXISTS users ( -- всё что после -- комментарий SQL
id INTEGER PRIMARY KEY, -- идентификатор пользователя, он же первичный ключ таблицы
first_use REAL, -- метка времени, когда пользователь впервые обратился к боту
last_use REAL -- метка времени, когда пользователь последний раз обратился к боту
)""")
cursor.close()
@bot.message_handler(commands=['start'])
def ensure_user_stats (user_id: INTEGER, first_use: REAL, last_use: REAL):
global connection
cursor = connection.cursor()
now = time.time()
# Добавить строку с указанным id, и фиксируем текущее время first_use и last_use
# если возникает конфликт в поле id
# то мы обновляем в этой записи поле last_use на текущее время
cursor.execute("""INSERT INTO users (id, first_use, last_use) VALUES (?, ?, ?)
ON CONFLICT (id) DO UPDATE SET last_use = excluded.last_use""", (user_id, now, now))
conn.commit()
При кнопке старт, просто крашится и оставляет такую ошибку
Ошибка:line 28, in ensure_user_stats
cursor.execute("""INSERT INTO users (id, first_use, last_use) VALUES (?, ?, ?)
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.
Записей в бд нет, подключение с бд есть, таблицу создает, если ее нет.
Пишет, что проблема в типах, но как их обозначить?? чтобы он спокойно записывал всю, ту инфу, что нужна и как должен выглядеть код ?