Как поставить пароль на бота в телеграмм
Перейти к содержимому

Как поставить пароль на бота в телеграмм

  • автор:

Как разработать Telegram-бота для генерации паролей

В статье рассказываем, как разработать Telegram-бота для генерации сложных паролей.

Эта инструкция — часть курса «Как создавать Telegram-ботов».

Смотреть весь курс

Введение

Чтобы придумать надежный, но запоминающийся пароль, можно взять несколько слов и объединить их в последовательность, напоминающую сюжет. А после — отформатировать и добавить специальные символы. Все просто, но задачу можно автоматизировать — написать Telegram-бота, который будет генерировать пароли прямо в мессенджере. В статье рассказываем, как это сделать.

Требования к работе бота

Прежде чем приступить к написанию кода, определим правила, по которым бот должен работать.

  1. Длина пароля должна быть от 2 до 8 слов. Так мы усложним задачу злоумышленнику — подобрать связку слов намного сложнее, чем одно слово.
  2. Между словами могут быть разделители в виде цифр и спецсимволов. Это увеличит энтропию и затруднит подбор пароля. Пароль с разделителями может выглядеть, например, так: unmovable8ENCRUST=macho.
  3. Дополнительно в пароле могут использоваться спецсимволы в начале (префиксы) и в конце (суффиксы) слова, которые также помогут увеличить сложность подбора.
  4. Количество слов, разделителей, префиксов и суффиксов должно настраиваться пользователем. Пользователю предоставляется интерфейс в виде сообщения с кнопками, нажатием на которые включаются и выключаются отдельные настройки
  5. Пользовательские настройки должны сохраняться в Redis и не сбрасываться при перезагрузке сервера с ботом. Выбор Redis обусловлен тем, что нам не требуются «фичи» реляционных СУБД — схемы, транзакции, миграции и другие — поэтому можно обойтись более простым в развертывании решением. Также мы будем использовать особенность aiogram — механизм конечных автоматов, который нативно поддерживает Redis как бэкенд.

Теперь посмотрим, что понадобится для разработки бота.

Что понадобится для разработки

Перед началом нужно подготовить среду разработки, установить нужные библиотеки и программы, а именно:

  • Python — от версии 3.9 и выше,
  • aiogram — асинхронный фреймворк для работы с Telegram Bot API,
  • Redis — быстрое key-value хранилище,
  • redis-py — клиент для работы с Redis,
  • XKCD-password-generator — библиотека для генерации паролей,
  • pydantic — библиотека для валидации данных и формирования настроек приложения.

И самое главное — репозиторий на GitHub. Его нужно импортировать в свое рабочее окружение и настроить.

Как настроить бота

Запустим бота локально. На этом этапе можем обойтись без Redis, но важно учитывать, что пользовательские настройки не будут сохранены между перезапусками.

Если вы пишете на Python и используете среду разработки PyCharm, то запустить бота будет максимально просто. После клонирования репозитория переключитесь на ветку article-tweaks (git checkout article-tweaks) и создайте новую конфигурацию запуска (Run Configuration). А затем установите параметры:

— BOT_TOKEN — укажите токен бота, его можно получить у @BotFather.

— STORAGE_MODE — выберите memory.

— WORDS__WORDFILE — укажите путь к файлу с набором слов. Он входит в состав репозитория, поэтому отдельно скачивать его не нужно.

Должно получится, как на скриншоте:

После этого запустите созданную конфигурацию. Вы увидите в консоли следующий текст:

INFO:aiogram.dispatcher.dispatcher:Start polling

Если вы используете не PyCharm, то процесс запуска несколько отличается. Создайте виртуальное окружение bot (python3 -m venv bot) и установите зависимости (pip install -r requirements.txt), а после — запустите бота следующей командой:

BOT_TOKEN=ключ от BotFather STORAGE_MODE=memory WORDS__WORDFILE=/path/to/words.txt python -m bot

Теперь попробуйте отправить в личные сообщения с ботом команду /start. Если в ответ получили текстовое приветствие, бот работает.

При вводе символа / вы должны увидеть список команд. Попробуйте вызвать их и изучить различные конфигурации. По умолчанию поддерживаются следующие пресеты:

  • /generate_weak –— два случайных слова без каких-либо дополнительных символов.
  • /generate_normal — три случайных слова, каждое из которых случайным образом может состоять из всех прописных или всех строчных букв, в качестве разделителей используются числа.
  • /generate_strong — то же, что и в предыдущем случае, но слов четыре, а в качестве разделителей, помимо цифр, возможны спецсимволы.

Кроме этого, есть команда /settings — она приводит к отправке сообщения с настройками. А также команда /generate — отправляет сгенерированный пароль с учетом новой конфигурации:

Деплой бота

Все готово, но есть проблема: бот запущен на компьютере. Это неудобно, если вы хотите обеспечить круглосуточную работу бота. Ведь тогда нужно поддерживать бесперебойную работу компьютера и постоянное соединение с интернетом.

Оптимальное решение проблемы — загрузить проект на облачный сервер с гибкой производительностью ядра. Так можно обеспечить стабильную работу бота и ограничить потребление ресурсов, чтобы не переплачивать.

Поскольку затраты процессора на генерацию пароля и отправку его в Telegram минимальны, нам подойдет сервер линейки Shared Line. Это линейка облачных серверов с возможностью оплаты только части ядра, например 10, 20 или 50%. Shared Line позволяет использовать все преимущества облака и не переплачивать за неиспользуемые ресурсы.

Для начала зарегистрируемся в панели управления и создадим новый сервер в разделе «Облачная платформа». Затем — настроим его.

С учетом выделенного IP-адреса такая конфигурация выйдет примерно в 28 ₽/день. При желании можно обойтись без маршрутизируемого IP-адреса, поскольку Telegram-бот может принимать события методом опроса (поллинга), даже находясь за NAT.

1. После подключения к серверу по SSH, бота необходимо перенести. Для этого выполните следующие шаги:Откройте консоль сервера и обновите систему с помощью команды:

apt update && apt upgrade -y 

2. Создайте отдельного пользователя для нашего бота и добавьте его в группу sudoers:

3. Установите Redis и присоедините его к systemd, воспользовавшись удобной инструкцией от DigitalOcean. Шаги 4 и 5 можно пропустить.

4. Клонируйте репозиторий и переключитесь на нужную ветку:

5. Настройте виртуальное окружение:

python3 -m venv venv && source /venv/bin/activate && pip install -r requirements.txt

6. Создайте файл systemd-службы по пути /etc/systemd/system/passgenbot.service со следующим содержимым:

[Unit] Description=Telegram Password Generator Bot Requires=redis.service After=network.target redis.service [Service] Type=simple WorkingDirectory=/home/bot/passgenbot ExecStart=/home/bot/passgenbot/venv/bin/python -m bot User=bot Group=bot EnvironmentFile=/home/bot/passgenbot/.env KillMode=process Restart=always RestartSec=10 [Install] WantedBy=multi-user.target

7. Обратите внимание на директиву EnvironmentFile. Создайте этот файл и поместите туда необходимые переменные окружения:

8. Убедитесь, что Redis запущен (systemctl status redis) и включите бота с добавлением его в автозапуск:

sudo systemctl enable passgenbot --now

Готово!

Разбираемся вместе

Возможности бота можно в любой момент персонализировать под себя. Если в какой-то момент пресетов станет недостаточно — добавить новые или изменить существующие. Это сделать достаточно просто.

За генерацию паролей по заданным пресетам отвечает класс XKCD. Под капотом наш бот выглядит так:

from random import choice from xkcdpass import xkcd_password class XKCD: # Весь список разделителей, отдельно цифры, отдельно – спецсимволы delimiters_numbers = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] delimiters_full = ["!", "$", "%", "^", "&", "*", "-", "_", "+", "=", ":", "|", "~", "?", "/", ".", ";"] + delimiters_numbers def __init__(self, filename: str): # Загрузка словаря в память self.wordlist = xkcd_password.generate_wordlist( wordfile=filename, valid_chars="[a-z]", min_length=4, max_length=10, ) def weak(self): # Слабый пароль: 2 слова без раздетилей return xkcd_password.generate_xkcdpassword( self.wordlist, numwords=2, delimiter="", ) def normal(self): # Средний пароль: 3 слова, разделитель # в виде случайной цифры return xkcd_password.generate_xkcdpassword( self.wordlist, numwords=3, case="random", random_delimiters=True, valid_delimiters=self.delimiters_numbers ) def strong(self): # Сильный пароль: 4 слова и большой выбор разделителей return xkcd_password.generate_xkcdpassword( self.wordlist, numwords=4, case="random", random_delimiters=True, valid_delimiters=self.delimiters_full ) def custom(self, count: int, separators: bool, prefixes: bool): # Произвольный пароль: # сложность зависит от настроек пользователя pwd = xkcd_password.generate_xkcdpassword( self.wordlist, numwords=count, case="random", delimiter="", random_delimiters=separators, valid_delimiters=self.delimiters_full ) if prefixes == separators: return pwd elif separators and not prefixes: return pwd[1:-1] elif prefixes and not separators: return f"" 

Для добавлении нового пресета достаточно скопировать существующий, изменить его название и настроить параметры метода generate_xkcdpassword под себя.

И последним этапом — добавить в обработчик commands функцию для вызова своего пресета, чтобы программа знала, в какой ситуации его вызывать. Это можно сделать по аналогии с существующими пресетами.

from aiogram import types, Dispatcher from aiogram.utils.markdown import hcode from bot.pwdgen import XKCD async def cmd_generate_weak(message: types.Message): # вызов пресета weak pwd: XKCD = message.bot.get("pwd") await message.answer(hcode(pwd.weak())) async def cmd_generate_normal(message: types.Message): # вызов пресета normal pwd: XKCD = message.bot.get("pwd") await message.answer(hcode(pwd.normal())) async def cmd_generate_strong(message: types.Message): # вызов пресета strong pwd: XKCD = message.bot.get("pwd") await message.answer(hcode(pwd.strong())) # вот здесь можно добавить свою функцию для вызова пресета # регистрация команд def register_commands(dp: Dispatcher): # обработчик вызывает пресет weak по команде generate_weak dp.register_message_handler(cmd_generate_weak, commands="generate_weak") # обработчик вызывает пресет normal по команде generate_normal dp.register_message_handler(cmd_generate_normal, commands="generate_normal") # обработчик вызывает пресет strong по команде generate_strong dp.register_message_handler(cmd_generate_strong, commands="generate_strong") # вот здесь можно добавить свою команду 

Заключение

Несмотря на то, что разработанный бот работает и выполняет свои прямые задачи по генерации сложных паролей, это далеко не предел его возможностей. В качестве дополнений и улучшений можно назвать добавление новых языков, автоудаление записей по таймеру, генерацию KeePass-совместимых баз данных, создание нескольких паролей одновременно и другое.

Как разработать Telegram-бота на Python+C

Работа с ботом Telegram

Сохраните токен в безопасное место. Если необходимо подключить бота к Вашему рабочему пространству, передайте токен и идентификатор бота своему менеджеру или в службу поддержки.

Как поменять изображение бота?

  1. Перейдите в чат с BotFather через поиск Telegram.
  2. Нажмите Старт.
  3. В отобразившемся списке выберите /setuserpic или наберите команду вручную.
  4. BotFather попросит прислать фото. Нажмите на Скрепку.
  5. Выберите изображение или сделайте фото.
  6. Нажмите Отправить.

Если Вы всё сделали правильно, BotFather обновит фото.

Похожие вопросы

  1. Использование Сообщений
  2. Настройки чатов
  3. Поиск чатов и собеседников
  4. Отправка сообщений
  5. Типы чатов
  6. Внешние чаты
  7. Связывание чатов с объектами
  8. Создание напоминания из сообщения
  9. Реакции на сообщения
  10. Прикрепление изображений и других объектов
  11. Опция Только для чтения
  12. Отключение уведомлений о сообщениях
  13. Поиск по сообщениям
  14. Просмотр сведений о сотрудниках
  15. Отслеживание просмотра сообщений
  16. Мини-чаты
  17. Звонки через браузер
  18. Упоминания
  19. Работа с ботом Telegram
  20. Удаление и восстановление чатов
  21. Другие опции чатов

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

Пользовательское соглашение

1. Общие положения

1.1. В настоящем Соглашении, а также во всех отношениях, связанных с этим документом, применяются следующие понятия:

а) Администрация — компания ООО “Облачные технологии”, ИНН 5261088136, находящаяся по адресу: 603009 г. Нижний Новгород, ул. Азовская, д. 16, оф. 12.

б) Пользователь — любое дееспособное физическое или юридическое лицо, зарегистрированное в Программе Smarty CRM и использующее её в своих интересах либо в интересах представляемых им лиц.

в) Программа — совокупность программного кода и базы данных, в том числе исходный текст, аудио, видео и визуальное отображение. Зарегистрированное название Программы — Smarty CRM (Свидетельство о регистрации программы для ЭВМ №2014617050). Постоянный адрес веб-версии Программы: https://smartycrm.com/

г) Мобильное приложение — клиент для использования Программы, адаптированный для работы на мобильных устройствах (телефоны, планшетные компьютеры и прочие устройства с операционными системами Android, iOS, Windows и пр.).

д) Аккаунт Пользователя — рабочая область Программы, доступ к которой становится возможным после регистрации и авторизации в Программе, в том числе через Мобильное приложение.

е) Соглашение — настоящий документ со всеми изменениями и дополнениями.

ж) Сайт — информационная площадка для размещения сведений о Программе, в том числе документации, настоящего Соглашения, контактов Администрации и прочих сведений. Также используется для регистрации и авторизации в Программе. Постоянный адрес сайта: https://smartycrm.com/

з) Сервер — специализированный компьютер, размещенный в дата-центре, необходимый для работы Программы.

и) Документация — совокупность текстовых, графических, аудиовизуальных и иных данных, содержащих в себе описание Программы.

1.2. Использование Программы допускается любым способом в пределах функциональных возможностей, требований законодательства и включает в себя:

— регистрацию и/или авторизацию в Программе через Сайт или Мобильное приложение;

— размещение в Программе любых материалов, включая текстовые данные, ссылки, изображения, различного рода файлы, а также иную информацию;

— просмотр размещенных в Программе материалов и обмен с другими пользователями;

— общение с другими пользователями через чат, обмен файлами и прочими данными.

1.3. Используя Программу одним из перечисленных в п. 1.2 способов, вы подтверждаете, что:

а) Ознакомились с настоящим Соглашением до начала использования Сервиса.

б) Соглашаетесь со всеми условиями настоящего Соглашения без каких-либо исключений, а также обязуетесь соблюдать все положения, связанные с реализацией Соглашения. В случае несогласия с одним из положений или при отсутствии права на акцепт Соглашения, следует незамедлительно прекратить любое использование Программы.

в) Любой пункт Соглашения может быть изменен или добавлен Администрацией без какого-либо специального уведомления Пользователя. Все изменения вступают в силу с момента опубликования на Сайте.

2. Общие условия использования Программы

2.1. Использование возможностей Программы возможно только после Регистрации и авторизации через Сайт или Мобильное приложение.

2.2. Все условия использования Программы, в том числе тарифные планы, Документация и прочие данные доводятся до сведения Пользователей путём размещения на Сайте и/или в интерфейсе Программы.

2.3. Указанные при регистрации электронная почта и пароль являются необходимыми данными для авторизации в Программе. Пользователь не имеет права передавать данные для авторизации третьим лицам, а также самостоятельно принимает меры для их сохранности. Администрация вправе усилить процедуру авторизации с помощью SMS или аналогичным способом.

3. Лицензия на использование Программы

3.1. Администрация на безвозмездной или возмездной основе предоставляет зарегистрированному пользователю возможность использования Программы на условиях простой (неисключительной) непередаваемой лицензии в пределах функциональных возможностей Программы и применимого законодательства.

3.2. Администрация устанавливает лимиты на объем и вид размещаемой Пользователями информации в Программе. Администрация также вправе устанавливать иные ограничения.

3.3. Администрация обладает авторскими и иными правами на программный код, дизайн Программы и Сайта, включающий графические элементы, цвета, аудиовизуальный контент, группировку и систематизацию данных, расположение различных элементов. Любое копирование, распространение, перевод или другие действия, связанные с нарушением авторских прав, запрещены без согласия Администрации в письменной форме.

3.4. Использование Программы способами, не предусмотренными настоящим Соглашением, запрещается.

4. Гарантии Пользователя

Принимая положения настоящего соглашения, Пользователь подтверждает, что:

4.1. Обладает необходимыми правами и полномочиями для акцепта настоящего Соглашения и его исполнения.

4.2. Будет использовать Программу только для целей, предусмотренных настоящим Соглашением, а также соблюдать применимое законодательство.

4.3. Не будет осуществлять действий, нарушающих работу Программы, Сервера и сетей Администрации. К таким действиям относятся: попытки различного рода взлома, создание искусственных перегрузок, отправка большого количества запросов и т.п.

4.4. При использовании Программы не нарушает прав третьих лиц, а также не осуществляет действий, противоречащих действующим в его стране запретам и ограничениям, в частности на использование авторских и смежных прав, прав на товарные знаки и знаки обслуживания, на использование фотографий людей; а также размещаемые в Программе материалы не содержат информации, оскорбляющей честь, достоинство, нарушающих деловую репутацию, пропагандирующую насилие, порнографию, наркотики, расовую и национальную вражду. Предполагается, что Пользователь получил все необходимые разрешения от уполномоченных лиц при размещении материалов в Программе.

5. Использование материалов Пользователя

5.1. Принимая условия настоящего Соглашения, Пользователь безвозмездно предоставляет Администрации право использовать материалы исключительно в целях развития Программы и поддержания её работоспособности.

5.2. Использование материалов Администрацией не должно нарушать авторских и иных прав Пользователя и третьих лиц.

6. Ограничения

Акцептуя настоящее соглашение, Пользователь соглашается со следующими положениями:

6.1. При использовании сервиса на безвозмездной основе не применяются положения законодательства о защите прав потребителей.

6.2. Программа, в том числе на платных тарифах, предоставляется на условиях “как есть”. То есть Администрация не предоставляет каких-либо гарантий, что Программа будет соответствовать всем требованиям, услуги будут предоставляться непрерывно, надежно и быстро, без каких-либо ошибок.

6.3. Администрация не несёт ответственности за содержание материалов, размещенных Пользователем в Программе. Вся ответственность возлагается на Пользователя, создавшего или разместившего данные материалы или на третьих лиц, получивших доступ к Аккаунту Пользователя при наличии вины Пользователя.

6.4. Администрация не связана с материалами, размещенными Пользователем в Программе, не проверяет их содержание, соответствие применимому законодательству или наличие прав Пользователя на размещение этих материалов.

6.5. Запрещается использование Программы для:

— размещения, распространения, рекламирования и прочей демонстрации контрафактных материалов;

— размещения, распространения порнографических материалов, а также пропаганды порнографии и рекламы услуг интимного характера;

— размещения, распространения любой запрещенной информации, в частности, материалы экстремистского характера, материалов, направленных на ущемление прав и свобод человека, информации об изготовлении наркотиков, оружия и пр.

— рекламных рассылок другим пользователям, на которые они не давали согласие (спам);

— размещения файлов в Программе, закрытых паролями.

6.6. Несмотря на запрет размещения оскорбительной или непристойной информации, Пользователь может получить такую информацию при наличии противоправных действий третьих лиц.

6.7. При обнаружении Пользователем нарушения своих прав или прав третьих лиц он вправе обратиться к Администрации через форму обратной связи на Сайте или в Программе. После получения такого уведомления Администрация принимает меры для предотвращения дальнейшего нарушения прав.

6.8. При наличии претензий третьих лиц к Администрации в отношении Пользователя, а также при выявленной подозрительной активности Администрация вправе инициировать идентификацию Пользователя путём запроса у него необходимых документов. После получения запрашиваемых документов Пользователь предоставляет Администрации заверенное обязательство урегулировать претензии третьих лиц собственными силами и за свой счёт. Сроки предоставления указанных выше документов — не более 5 (пяти) дней с момента получения запроса.

6.9. Администрация без объяснения причин имеет право удалять из Программы любые материалы, явно противоречащие Закону хотя бы одной из стран, где используется Программа.

6.10. При многократном или однократном грубом нарушении настоящего Соглашения Администрация вправе заблокировать или удалить Аккаунт Пользователя вместе с материалами, которые в нём размещены.

6.11. В случае привлечения Администрации к ответственности или наложения взыскания в связи с допущенным нарушением Пользователем настоящего Соглашения Пользователь обязуется компенсировать в полном объеме все убытки, в том числе судебные издержки и прочие расходы.

6.12. Акцептуя настоящее соглашение, Пользователь соглашается, что его персональные данные могут стать доступными третьим лицам в связи с использованием некоторых функциональных особенностей Программы.

6.13. При любых обстоятельствах ответственность Администрации перед Пользователем ограничивается суммой 1000 (одна тысяча) рублей или эквивалентом в иностранной валюте.

7. Уведомления

7.1. Регистрируясь в Программе, Пользователь соглашается получать информационные сообщения на указанную им при регистрации почту, нотификации непосредственно в Программе, в том числе в мобильных приложениях, а также иными доступными для Администрации способами.

7.2. Администрация вправе использовать уведомления, связанные с информированием о функционале Программы, а также уведомления, связанные с социальной активностью других пользователей и другие виды уведомлений и нотификаций.

7.3. Администрация оставляет за собой право использовать уведомления в отношении третьих лиц, данные которых размещены в Аккаунте Пользователя в случае функциональной необходимости при работе Программы.

8. Персональные данные и коммерческая тайна

8.1. Регистрируясь в Программе, Пользователь даёт письменное согласие на автоматизированную и неавтоматизированную обработку персональных данных, указываемых в момент регистрации, а также данных, в дальнейшем добавленных в его Аккаунт.

8.1.1 К таким данным относятся данные, не являющиеся специальными или биометрическими. В частности, ФИО, номера телефонов, адреса электронной почты, место работы, должность, данные о местоположении и пр. В некоторых случаях могут быть сохранены технические данные, такие как тип и версия браузера, тип устройства, с которого осуществляется регистрация, источник, откуда пришел пользователь, язык браузера, операционная система, IP-адрес и другие данные предоставляемые сервисами по сбору статистики и внутренней аналитики.

8.1.2 Обработка персональных данных осуществляется только в целях исполнения настоящего Соглашения.

8.1.3 Основанием для обработки персональных данных является Конституция России, Федеральный закон №152-ФЗ “О персональных данных” и настоящее Соглашение.

8.1.4 В ходе обработки персональных данных могут быть совершены следующие действия: сбор, запись, систематизация, накопление, хранение, уничтожение, изменение, извлечение, использование, блокирование, передача государственным органам в случае предъявления соответствующего требования, а также третьим лицам по соглашению с ними исключительно в целях соблюдения условий настоящего Соглашения.

8.1.5 Персональные данные обрабатываются до момента удаления Аккаунта по запросу Пользователя на электронную почту support@smartycrm.com. При этом окончательное удаление осуществляется только после автоматического удаления файлов резервных копий баз данных, кэша и очистки от данных пользователя других технических и программных средств и баз данных, обеспечивающих стабильность работы Программы.

8.1.6 Согласие на обработку персональных данных может быть отозвано субъектом персональных данных или его представителем. При этом подобный отзыв приравнивается к удалению Аккаунта Пользователя.

8.1.7 Администрация несёт ответственность за соблюдение положений Федеральный закон №152-ФЗ “О персональных данных” и для этого назначает уполномоченных сотрудников, контролирующих соответствие правовым нормам.

8.1.8 Разъяснения по обработке персональных данных производятся уполномоченным государственным органом (Роскомнадзор, https://rkn.gov.ru/). Разъяснения, касаемые персональных данных по настоящему Соглашению могут быть предоставлены по письменному запросу на почтовый адрес Администрации.

8.2. Используя Программу, Пользователь самостоятельно определяет степень доступности персональных данных, а также материалов, относящихся к коммерческой и иным видам тайн иным пользователям Программы или пользователям интернета.

8.3. Регистрируясь в Программе, Пользователь признаёт, что размещая персональные данные в Программе способом, предоставляющим возможность открытой публикации в интернете, эти персональные данные становятся общедоступными. Пользователь соглашается, что Администрация не несет ответственности за распространение персональных данных в указанном случае. Пользователь также признаёт, что персональные данные, а также материалы, относящиеся к коммерческой и иным видам тайн считаются общедоступными, когда в соответствии с действующим законодательством в отношении них не распространяется требование конфиденциальности.

9. Финансовые условия

9.1. Пользователь в любое время вправе отказаться от использования Программы. Отказ осуществляется в одностороннем порядке путём удаления Аккаунта в настройках Программы либо путём направления письменного уведомления на почту support@smartycrm.com. По запросу Пользователя, Аккаунт может быть заблокирован или удалён Администрацией.

9.2. Программа имеет один бесплатный и несколько платных тарифов с различными функциональными возможностями и лимитами на размещаемые материалы по количеству или объему. Пользователь самостоятельно выбирает тарифный план и производит на него подписку одним из предлагаемых способов. Перечень тарифов размещается на сайте https://smartycrm.com/ и непосредственно в интерфейсе Программы. Стоимость тарифов может отличаться в разных странах и в разных маркетах для мобильных приложений.

9.3. Оплата подписки или покупка дополнительных функций Программы производится через специальный раздел в Программе с любого компьютера или мобильного устройства, находящегося в любой точке мира. В случае изменения расценок, разница как в большую, так и в меньшую стоимость не компенсируется. Для Пользователя, уже оплатившего подписку или дополнительную функцию, новые расценки начинают действовать с нового периода.

9.4. Предоставляемая при оплате персональная информация (имя, адрес, номер телефона, email, номер кредитной карты, срок её действия и пр.) является конфиденциальной и не подлежит разглашению. Указанная информация передаётся только в зашифрованном виде напрямую в процессинговую компанию и не сохраняется в базе данных Программы, а также в какой-либо иной базе Администратора.

Все операции с платежными картами происходят в соответствии с требованиями MasterCard, Visa, Discover, JCB, American Express и других платежных систем. При передаче информации используются специальные технологии безопасности карточных онлайн-платежей, обработка данных ведется на безопасном высокотехнологичном сервере процессинговой компании. В случае использования регулярных платежей при совершении первой операции номер карты Пользователя и срок действия будут сохранены на стороне процессинговой компании в безопасном хранилище. По факту выполнения или оказания услуг со стороны компании данные будут удалены автоматически. Все ресурсы процессинговой компании соответствуют стандартам безопасности PCI DSS.

10. Прочие условия

10.1. Пользователь самостоятельно определяет условия и порядок использования своего Аккаунта в Программе. Указанные условия не могут противоречить настоящему Соглашению.

10.2. Ко всем отношениям по данному Соглашению применяются нормы права Российской Федерации, а также нормы международного права.

10.3. Все споры по настоящему Соглашению подлежат рассмотрению в суде по месту нахождения Администрации в соответствии с процессуальным правом Российской Федерации.

10.4. Настоящее соглашение может быть прекращено или изменено в одностороннем порядке без предварительного уведомления Пользователя и без выплаты каких-либо компенсаций или неустоек.

10.5. Действующая редакция настоящего соглашения размещена на Сайте Администрации по постоянному адресу: https://smartycrm.com/ru/terms

11. Контактная информация

11.1. Контакты Администрации — email технической поддержки support@smartycrm.com. Другие контакты размещаются на Сайте https://smartycrm.com/

Privacy policy & refund policy

Privacy Policy & Refund Policy

Privacy Policy

This policy covers how we use your personal information. We take your privacy seriously and will take all measures to protect your personal information.

Any personal information received will only be used to fill your order. We will not sell or redistribute your information to anyone.

Refund Policy

If you are not 100% satisfied with your purchase, within 120 days from the purchase date, we will fully refund the cost of your order.

Пароль для бота Telegram

Можно ли как-то поставить пароль на бота в Telegram? А то получается, что им может управлять любой, кто знает его логин.

Отслеживать
13.7k 12 12 золотых знаков 43 43 серебряных знака 75 75 бронзовых знаков
задан 11 июл 2017 в 7:49
123 1 1 серебряный знак 9 9 бронзовых знаков
Вы можете задать вопрос пользователю и если он неправильно ответит, то прекратить беседу
11 июл 2017 в 7:52
@VenZell, Спасибо! Сейчас буду писать) А как Ваш комментарий сделать ответом на этот вопрос?
11 июл 2017 в 7:55
@VenZell, Еще такой вопрос, не подскажите случайно команду которая обрывает связь с ботом?
11 июл 2017 в 8:06
Если бы знал как именно это сделать, написал бы ответ. Что это сделать можно знаю точно.
11 июл 2017 в 8:08
@VenZell, Спасибо еще раз! Буду искать. Если найду, отвечу на вопрос.
11 июл 2017 в 8:11

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

users = [123, . . n] # chat id # Органичение доступа к боту по ID @bot.message_handler(func=lambda message: message.chat.id not in users) def some(message): bot.send_message(message.chat.id, 'Извините, Создатели не разрешают мне общаться с незнакомыми пользователями) 

ну и вдруг пригодится это

users_start = [123, 456, -100] # последнее - id группы если бот что-то должен делать в группе # Органичение выполнение команды start @bot.message_handler(func=lambda message: message.chat.id not in users_start, commands=['start']) def some(message): bot.send_message(message.chat.id, 'У Вас нет прав на выполнение данной команды') 

Отслеживать
ответ дан 7 июн 2019 в 14:49
10.2k 5 5 золотых знаков 25 25 серебряных знаков 68 68 бронзовых знаков

Создайте массив пользователей, указавших пароль

let logged_in_users = [] 

При получении нового сообщения, проверяйте есть ли ID пользователя в созданном ранее массиве

if (logged_in_users.includes(message.from.id)) 

Если да, пусть бот обработает сообщение

Иначе, пусть бот сверит текст сообщения с паролем

if (message.text == 'password') 

Если да, добавьте ID пользователя в массив и обработайте сообщение

logged_in_users.push(msg.from.id) 

Если нет, отправьте сообщение о том, что требуется ввести верный пароль

Отслеживать
ответ дан 20 авг 2019 в 17:05
ExposedCat ExposedCat
358 1 1 золотой знак 4 4 серебряных знака 15 15 бронзовых знаков

Задача решается игнорированием сообщений от пользователя с определённым chat_id. Для этого нужно хранить их все и устанавливать флаг блокировки там, где это потребуется. Хранение chat_id полезно и для многих других задач.

Пример (псевдокод):

while (true) < var updates = GetUpdates(); foreach update in updates < var chat_id = update.chat.id; if chat_id in (%list_of_blocked_users%) then continue; //else do something with update . >> 

Отслеживать
ответ дан 13 июл 2017 в 4:05
3,747 1 1 золотой знак 20 20 серебряных знаков 47 47 бронзовых знаков

Так а как я могу знать chat_id пользователя заранее? Ведь лучше и проще сделать просто доступ для «своих», зная их chat_id. Забыл указать в вопросе, что пишу на Python. Но в принципе Ваша идея мне понятна. Я придумал сделать следующим образом: 1) Когда боту поступает команда /start, он здоровается и говорит «Для продолжения введите пароль» 2) Пароль я думаю можно присвоить какой нибудь переменной например — «passwd=12345» 3) Если пароль равен passwd, перейти к следующей функции def, в ином случае сделать return(возврат к началу). Попытки написания этого кода продолжаются.

14 июл 2017 в 7:25
Кстати говоря, есть такая штука, как Deep linking. Возможно это будет самым оптимальным решением
14 июл 2017 в 7:56

А «своих» chat_id откуда знаете? Вот оттуда же узнавайте и чужих. С паролем идея в принципе рабочая, но какая-то не элегантная, мягко скажем. Изобретаете велосипед. Заранее знать не нужно, нужно записывать все chat_id и помечать флагами те, которые спамят/пытаются сломать бота/используют не по назначению/ и тп, определите логику бана сами

Как сделать imput password в телеграм боте?

Требуется чтоб пользователь ввел свой логин и пароль от сайта которому делаю бота, чтоб использовать их для авторизирован запросов. Подскажите код чтоб в телеграмм выводился аналог формы авторизации.

  • Вопрос задан более трёх лет назад
  • 3798 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 2
А зачем вам аналог формы авторизации? Не проще ли «запрос от бота — ответ от пользователя»?
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

Сам диалог и есть аналог формы.
Ввод логина — просто сообщение. А ввод пароля можете сделать с помощью инлайн-клавиатуры. Кнопки на клавиатуре — цифры/буквы. После ввода меняете текст сообщения, к которому привязана клавиатура на звездочки. Тогда в истории не будет видно пароль.
Но такой способ не очень удобен, если пароль из букв. Для цифрового пин-кода самое то.

Ответ написан более трёх лет назад
goshva @goshva Автор вопроса

я не понимаю как добавить к команде параметр
/login «пользовательский логин»,
или к команде /password «1234»

Ваш ответ на вопрос

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

telegram

  • Telegram

Как войти в telegram по SMS?

  • 1 подписчик
  • 2 часа назад
  • 26 просмотров

telegram

  • Telegram

Как написать сообщение от администратора канала телеграм?

  • 1 подписчик
  • 7 часов назад
  • 31 просмотр

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *