@jtores

Как настроить авторизацию в telegram боте?

Пишу простого бота, но не могу разобраться с системой регистрации и авторизации.

Нужно, чтобы при запуске бота он создавал (если не имеется) файл accounts.txt и просил пользователя зарегистрироваться.

При авторизации он должен проверить есть ли такие данные в файле или нет.
Если да, то ты молодец, если нет – должен попросить зарегистрироваться.

Только без sqlite3, MongoDB и прочие библиотеки базы данных.
Нужен сырой текст.
Если есть идея получше, можете предложить.

Спасибо.
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 2
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Идея? Есть отличная оригинальная идея - немножко подучиться программировать на выбранном вами языке. Не искать карьеру разработчика ботов беззнания программирования, а именно подучить язык и основы алгоритмизации.
А задача ваша решается просто. Начать надо с декомпозиции.
При запуске бота вам нужно открыть этот текстовый файл и загрузить его контент в структуру, и, если не получилось, то создать пустую структуру.
Если пользователь, нажавший у бота кнопку старт не найден в этой структуре, то бот должен запустить сценарий регистрации. Что вы под этим понимаете? Вопросы какие-то задать пользователю и сохранить ответы?
При окончании регистрации нужно сохранить структуру в файл.

С каким именно пунктом вам что-то не ясно?
Если со всеми, то нужно учиться программировать,а ботов писать вам рано. Попробуйте взять учебник и читать по порядку. первый раз быстро и не останавливаясь, а второй раз вдумчиво и выполняя все задания.

После этого у вас вот эти вот вопросы отпадут все.
Ответ написан
Комментировать
@Zailox
Лучше всё-же использовать SQL датабазы, но вот есть вариант без него с сохранением пользователей вида "юзер пароль":
users = open("users.txt", 'a+')
...
#После отправки команды /login
for item in users.read().split("\n"):
    message = message.replace("/login ", "")
    if message.split(" ", 1)[0] == item.strip().split(" ", 1)[0] and message.split(' ', 1)[-1] == item.strip().split(' ', 1)[-1]:
        message.answer("Вы вошли")
    else:
        message.answer("Зарегистрируйтесь командой /register")
...
#После отправки команды /register
        users.write(message.replace("/register ", ""))
        message.answer("Вы успешно зарегистрировались")


Примерно так должен выглядеть код, пример написан на aiogram, вход происходит при отправке команды /login логин пароль, а регистрация при отправке команды /register логин пароль. И вообще, главное в обучении - problem solving, так что пореже обращайтесь к ИИ и форумам, если даже не пытались решить задачу.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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