Skip to content

Latest commit

 

History

History
75 lines (43 loc) · 3.52 KB

File metadata and controls

75 lines (43 loc) · 3.52 KB

Решение второго задания

Как улучшить бота?

Можно существенно сократить количество шагов в боте за счёт использования start-параметра Telegram.

В команду /start можно передавать произвольные значения, например:
https://t.me/some_bot?start=some_value

При этом туда можно зашивать сразу несколько параметров, предварительно закодировав их в Base64.

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

Пример

Я откликнулся на вакансию python backend, ссылка на моё резюме:
hh.ru/resume/123456789abcdefg

На бэкенде генерируем короткий ключ-значение, например:
qweasdhh.ru/resume/123456789abcdefg

Также заранее знаем тип вакансии, на которую был отклик, например:
python-dev

Из этих данных формируем структуру, которую сможем декодировать на бэкенде, например:
resume_key=qweasd,job=python-dev

Далее кодируем эту строку в Base64 и передаём её в start-параметр:

resume_key=qweasd,job=python-dev
↓
cmVzdW1lX2tleT1xd2Vhc2Qsam9iPXB5dGhvbi1kZXY=

Итоговая ссылка для пользователя будет выглядеть так:

https://t.me/our_bot?start=cmVzdW1lX2tleT1xd2Vhc2Qsam9iPXB5dGhvbi1kZXY=

Обработка на бэкенде

Когда пользователь переходит по ссылке и запускает бота, на бэкенде:

  • декодируем start-параметр

  • получаем ключ резюме и тип вакансии

  • по ключу подтягиваем реальную ссылку на резюме

  • заранее знаем, на какую вакансию человек откликнулся.

Результат

  • шаг с вводом ссылки на резюме полностью убирается

  • шаг с выбором вакансии не требуется

  • пользователю остаётся только отправить или подтвердить номер телефона (через request_contact).

Дополнительные преимущества

Дополнительно такое решение позволяет:

  • валидировать вход в бота (работать только с заранее сгенерированными ссылками)

  • ограничивать время жизни ссылки

  • отслеживать источник отклика (HH, LinkedIn, Хабр и т.д.)

  • исключить ошибки при ручном вводе данных

Итог

Бот становится короче, быстрее и удобнее для пользователя, а качество и консистентность данных на бэкенде значительно выше.