Нужно сделать ТГ Бота, который будет записывать ответы пользователя в Google Sheets
Всем привет! Нужна помощь. Пытаюсь написать бота для ТГ на питоне. Задача в следующей: бот должен последовательно присылать вопросы после каждого ответа пользователя. Ответы пользователя должны фиксироваться в гугл таблице.
Я совсем новичок, и мой код выглядит так:
import telebot
import gspread
bot = telebot.TeleBot('Токен')
gc = gspread.service_account(filename='creds.json')
wks = gc.open('Имя таблицы').sheet1
otvet1 = None
otvet2 = None
@bot.message_handler(commands=['start'])
def main(message):
bot.send_message(message.chat.id, f'Добрый день, {message.from_user.first_name}, ТЕКСТ ')
bot.register_next_step_handler(message, vopros1)
def vopros1(message):
global otvet1
bot.send_message(message.chat.id, 'Вопрос 1')
otvet1 = message.text.strip()
wks.append_row('a1', otvet1)
bot.register_next_step_handler(message, vopros2)
def vopros2(message):
global otvet2
bot.send_message(message.chat.id, 'Вопрос 2')
otvet2 = message.text.strip()
wks.append_row('b1', otvet2)
@bot.message_handler()
def end(message):
bot.send_message(message.chat.id, 'Завершение опроса')
bot.polling(none_stop=True)
На текущий момент получилось, чтобы вопросы были последовательные, но бот не фиксирует ответы в таблицу. Не совсем понимаю разницу между wks.append_row и wks.update
Ответы (1 шт):
Если Вы задержите курсор мышки на методе append_row
, то IDE отобразит документацию.
В VS Code это выглядит так:
Нужную Вам подсказку я подчеркнула красной линией.
append_row добавляет вниз таблицы строку с данными.
В Вашем случае заполняется один столбец, но метод готов заполнить все ячейки в строке,
и ожидает список значений!!!
wks.append_row([otvet1,])
- попробуйте так.
P.S. Операции записи в таблицу лучше обернуть в try
; except
,
что бы обработать ошибки если они возникнут при записи.