Простая форма для сбора лидов из Instagram с автоматическим сохранением в Google Sheets.
- ✅ Минимальная форма с двумя полями: имя и телефон
- 📱 Полностью адаптивный дизайн для мобильных устройств
- 🔗 Автоматическое сохранение данных в Google Sheets
- ✨ Современный и красивый UI/UX
- 🔒 Валидация данных на клиенте и сервере
- 📊 Автоматическое форматирование номера телефона
- ⚡ Быстрая загрузка и отзывчивый интерфейс
- Python 3.7+
- Google Cloud Platform аккаунт
- Google Sheets API доступ
# Установка зависимостей
pip install -r requirements.txt
python setup_google_sheets.py
Скрипт автоматически:
- Создаст новую Google Sheets таблицу
- Настроит заголовки
- Создаст файл
.env
с конфигурацией - Предоставит ссылку на таблицу
-
Создайте проект в Google Cloud Console:
- Перейдите на Google Cloud Console
- Создайте новый проект или выберите существующий
-
Включите необходимые API:
- Google Sheets API
- Google Drive API
-
Создайте Service Account:
- Перейдите в IAM & Admin > Service Accounts
- Нажмите "Create Service Account"
- Заполните название и описание
- В ролях выберите "Editor"
- Нажмите "Done"
-
Создайте ключ для Service Account:
- Найдите созданный Service Account в списке
- Нажмите на него
- Перейдите на вкладку "Keys"
- Нажмите "Add Key" > "Create new key"
- Выберите "JSON" и нажмите "Create"
- Скачайте файл и переименуйте его в
credentials.json
- Поместите файл в корень проекта
-
Создайте Google Sheets таблицу:
- Создайте новую таблицу в Google Sheets
- Скопируйте ID таблицы из URL
- Настройте доступ: Поделиться > Расширенный > Доступ: "Все, у кого есть ссылка" > Редактор
-
Создайте файл
.env
:
GOOGLE_SHEET_ID=your_spreadsheet_id_here
FLASK_ENV=development
FLASK_DEBUG=True
SECRET_KEY=your-secret-key-change-this-in-production
В первой строке таблицы создайте заголовки:
A1: Дата и время
B1: Имя
C1: Телефон
python app.py
Приложение будет доступно по адресу: http://localhost:5000
- Откройте форму в браузере
- Заполните поля "Имя" и "Телефон"
- Нажмите "Отправить заявку"
- Данные автоматически сохранятся в Google Sheets
Отредактируйте файл static/css/style.css
для изменения:
- Цветовой схемы
- Шрифтов
- Размеров элементов
- Анимаций
Отредактируйте файл templates/index.html
для изменения:
- Заголовков
- Подписей к полям
- Сообщений
- Добавьте поле в
templates/index.html
- Обновите валидацию в
app.py
- Добавьте поле в Google Sheets таблицу
- Обновите
sheet.append_row()
в функцииsubmit_lead()
GOOGLE_SHEET_ID
- ID Google Sheets таблицыFLASK_DEBUG
- Режим отладки (True/False)SECRET_KEY
- Секретный ключ Flask
В файле app.py
можно настроить:
validate_phone()
- правила валидации телефонаvalidate_name()
- правила валидации имени
Дата и время | Имя | Телефон |
---|---|---|
2024-01-15 14:30:25 | Иван Петров | +7 (999) 123-45-67 |
2024-01-15 14:32:10 | Мария Сидорова | +7 (888) 987-65-43 |
- Создайте
Procfile
:
web: python app.py
- Установите переменные окружения в Heroku:
heroku config:set GOOGLE_SHEET_ID=your_sheet_id
heroku config:set SECRET_KEY=your_production_secret_key
- Загрузите
credentials.json
как конфиг-переменную
- Установите зависимости:
pip install -r requirements.txt
- Настройте веб-сервер (nginx + gunicorn):
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:8000 app:app
- Настройте SSL сертификат
- Убедитесь, что файл
credentials.json
существует - Проверьте, что
GOOGLE_SHEET_ID
указан в.env
- Запустите
python setup_google_sheets.py
- Проверьте правильность
credentials.json
- Убедитесь, что Service Account имеет доступ к таблице
- Проверьте, что API включены в Google Cloud Console
- Проверьте консоль браузера на ошибки JavaScript
- Убедитесь, что Flask сервер запущен
- Проверьте логи сервера
MIT License
Если у вас возникли вопросы или проблемы, создайте issue в репозитории.
Создано для эффективного сбора лидов из Instagram 🚀