@jtores

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

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

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

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

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

Спасибо.
  • Вопрос задан
  • 153 просмотра
Пригласить эксперта
Ответы на вопрос 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, так что пореже обращайтесь к ИИ и форумам, если даже не пытались решить задачу.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 200 000 ₽
Гринатом Москва
от 150 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
15 июн. 2024, в 19:19
10000 руб./за проект
15 июн. 2024, в 17:26
50000 руб./за проект