Легко сканируйте QR-коды с помощью Telegram!
Этот репозиторий содержит код @easyqrscanbot, приложения Telegram Mini для сканирования QR-кодов.
Убедитесь, что вы обновили приложение Telegram. Минимальная необходимая версия Telegram API — 6.9
.
@easyqrscanbot
в Telegram и начните приватный чат.Scan QR
). Сканер QR-кода поддерживается в клиентах Telegram для смартфонов (Android и iOS) с версиями Telegram API выше 6.9
. К сожалению, QR-сканирование недоступно в веб-клиентах Telegram. Однако вы по-прежнему можете получить доступ к мини-приложению в веб-клиенте и просмотреть историю сканирования.
Этот проект служит иллюстрацией создания мини-приложения Telegram с использованием современной инфраструктуры JavaScript, такой как Vue. Он также демонстрирует, как использовать новейшие функции, представленные в Telegram API версии 6.9, в том числе:
Проект представляет собой чистое интерфейсное приложение Vue, которое использует серверную часть облачного хранилища Telegram для хранения полученных сканирований.
Процесс развертывания полностью автоматизирован с помощью GitHub Actions. При каждом отправке в master
ветку мини-приложение автоматически создается и развертывается на связанном сайте GitHub Pages.
Доступ к мини-приложению можно получить здесь: Ссылка на мини-приложение.
Чтобы начать работу над проектом, выполните следующие действия:
git clone https://github.com/MBoretto/easy-qr-scan-bot.git
cd easy-qr-scan-bot
npm install
npm run build
Чтобы запустить анализ кода, используйте следующую команду:
npm run lint
Приятного кодирования!
Прежде чем начать, убедитесь, что у вас есть бот Telegram. Если у вас его еще нет, вы можете создать его, используя это руководство по Telegram.
Если вы хотите развернуть собственное мини-приложение, выполните следующие действия:
Клонируйте этот репозиторий.
Включите GitHub Pages для своего репозитория, выбрав Settings
-> Pages
-> «Выбрать GitHub Actions
в качестве источника. GitHub автоматически развернет мини-приложение на страницах GitHub, связанных с вашим репозиторием.
Вы также можете развернуть свое мини-приложение с помощью любой службы хостинга, поддерживающей https://
.
Это самый простой способ запустить мини-приложение, поскольку для него требуется настроить меню бота Telegram только один раз. Вот шаги, чтобы связать мини-приложение с меню вашего бота:
/mybots
.Теперь вы можете запустить свое мини-приложение из меню бота Telegram.
Этот метод полезен на этапе разработки, позволяя указывать разные URL-адреса для мини-приложения без перенастройки меню бота Telegram. Однако для этого требуется работающий бот-сервис Telegram. Выполните следующие действия:
pip3 install python-telegram-bot --upgrade
config-example.py
в config.py
: mv config-example.py config.py
Отредактируйте файл config.py
и вставьте TOKEN
токена Telegram Bot (вы можете получить его по ссылкам @BotFather), URL
и URL_TEST
.
Запустите скрипт web-app-launcher.py
:
python3 web-app-launcher.py
/start
(для рабочей ссылки) или /dev
(для тестовой ссылки).Теперь вы можете запустить и протестировать свое мини-приложение, используя тестовую ссылку.
Облачное хранилище Telegram — это база данных «ключ-значение», доступная из любого клиента Telegram. Он позволяет хранить до 1024
ключей на пользователя для каждого бота, при этом каждое значение имеет ограничение в 4096
символов. Данные связаны с учетной записью пользователя Telegram и сохраняются на всех устройствах. После сканирования QR-кода необработанная строка сохраняется с использованием временной метки в качестве ключа.
Мини-приложение загружает полную историю сканирования при запуске и сохраняет ее локально. Последующие сканы сохраняются как в облачном хранилище Telegram, так и локально.
Полученные необработанные данные обрабатываются для извлечения информации в соответствии с содержимым QR-кода. Поддерживаемые типы контента QR-кода:
На вкладке «История» разверните QR-код, который хотите удалить, и нажмите кнопку Bin
. Это действие удаляет QR-код как из облачного хранилища Telegram, так и из локального хранилища. Мини-приложение не хранит никаких других данных и не использует файлы cookie.
Сканер QR-кода обычно закрывается после распознания кода. Однако вы можете включить режим непрерывного сканирования, перейдя на вкладку настроек и нажав кнопку Continuous Scan
. Чтобы отключить режим непрерывного сканирования, нажмите кнопку еще раз. Выйти из непрерывного режима можно, нажав стрелку в верхнем левом углу.
После успешного сканирования QR-кода устройство будет вибрировать, чтобы обеспечить обратную связь.
В разделе настроек мини-приложения вы найдете полезные инструменты для отладки и разработки:
Sync Cloud Storage
. При этом локальное хранилище мини-приложения синхронизируется с облачным хранилищем Telegram, что эквивалентно открытию и закрытию мини-приложения.Enrich QR codes
: запускает вычисление необработанных QR-кодов для всех сканирований.Show debug
дисплеев:В проекте используется Vuetify, библиотека компонентов Vue.
Код распространяется по лицензии MIT.