Современный сервис для автоматизации взаимодействий с социальной сетью Threads, включающий умное взаимодействие с постами, ИИ-комментирование и детальную аналитику.
- Поиск по ключевым словам - находит релевантные посты
- Автоматические лайки - ставит лайки на подходящие посты
- ИИ-комментарии - генерирует осмысленные комментарии
- Sentiment анализ - анализирует эмоциональную окраску постов
- Фильтрация контента - избегает неподходящего контента
- OpenAI GPT (GPT-3.5, GPT-4)
- Anthropic Claude (все модели)
- OpenRouter (100+ моделей)
- Настраиваемые промпты для каждого провайдера
- Система плохих примеров для обучения ИИ
- Детальная статистика с графиками
- Категоризация постов автоматическая
- Экспорт данных в CSV формате
- Real-time мониторинг выполнения заданий
- Система логирования всех действий
- Тестовый режим - генерация без отправки комментариев
- Управление аккаунтами с проверкой валидности
- Контроль лимитов времени и количества
- Паузы между действиями для имитации человеческого поведения
| Категория | Технологии |
|---|---|
| Backend | Node.js, Express.js, Puppeteer |
| База данных | MySQL 8.0+ |
| Frontend | Bootstrap 5, Chart.js, Vanilla JS |
| ИИ API | OpenAI, Anthropic, OpenRouter |
| Автоматизация | Puppeteer, Chrome/Chromium |
- ОС: Windows 10+ или Linux (Ubuntu 18.04+, CentOS 7+)
- RAM: 4 GB
- CPU: 2 ядра
- Место на диске: 2 GB
- Интернет: Стабильное подключение
- ОС: Windows 11 или Ubuntu 20.04+
- RAM: 8 GB
- CPU: 4 ядра
- Место на диске: 5 GB
- Интернет: Высокоскоростное подключение
- Скачайте Node.js с официального сайта
- Выберите LTS версию (18.x или новее)
- Запустите установщик и следуйте инструкциям
- Проверьте установку:
node --version
npm --version# Обновление пакетов
sudo apt update
# Установка Node.js 18.x
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# Проверка установки
node --version
npm --version# Установка Node.js 18.x
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs
# Или для новых версий
sudo dnf install -y nodejs npm- Скачайте MySQL с официального сайта
- Запустите MySQL Installer
- Выберите "Server only" или "Full" установку
- Установите пароль для root пользователя
- Проверьте установку через MySQL Workbench или командную строку
# Установка MySQL Server
sudo apt update
sudo apt install mysql-server
# Безопасная настройка MySQL
sudo mysql_secure_installation
# Создание пользователя для приложения
sudo mysql -u root -p# Установка MySQL
sudo yum install mysql-server
# Или для новых версий
sudo dnf install mysql-server
# Запуск и автозапуск
sudo systemctl start mysqld
sudo systemctl enable mysqld
# Получение временного пароля
sudo grep 'temporary password' /var/log/mysqld.log-- Подключение к MySQL
mysql -u root -p
-- Создание базы данных
CREATE DATABASE threads_automation CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Создание пользователя (рекомендуется)
CREATE USER 'threads_user'@'localhost' IDENTIFIED BY 'secure_password_here';
GRANT ALL PRIVILEGES ON threads_automation.* TO 'threads_user'@'localhost';
FLUSH PRIVILEGES;
-- Выход
EXIT;# Клонирование репозитория
git clone https://github.com/djeknet/threads-bot.git
cd threads-bot
# Установка зависимостей
npm install
# Создание папки для cookies (если не существует)
mkdir -p cookies
# Создание файла переменных окружения
cp .env.example .envСоздайте файл .env в корне проекта:
# === Конфигурация базы данных ===
DB_HOST=localhost
DB_PORT=3306
DB_USER=threads_user
DB_PASSWORD=secure_password_here
DB_NAME=threads_automation
# === Конфигурация сервера ===
PORT=3000
NODE_ENV=production
# === Конфигурация ИИ провайдеров (опционально) ===
# OpenAI
OPENAI_API_KEY=sk-your-openai-key-here
# Anthropic
ANTHROPIC_API_KEY=sk-ant-your-anthropic-key-here
# OpenRouter
OPENROUTER_API_KEY=sk-or-your-openrouter-key-here
# === Конфигурация Puppeteer ===
PUPPETEER_HEADLESS=true
PUPPETEER_ARGS=--no-sandbox,--disable-setuid-sandbox,--disable-dev-shm-usage
# === Пути к файлам ===
COOKIES_DIR=./cookies
LOGS_DIR=./logsPuppeteer автоматически скачает Chromium при установке. Если возникают проблемы:
# Установка дополнительных компонентов
npm install --global windows-build-tools# Установка зависимостей для Chromium
sudo apt-get update
sudo apt-get install -y \
ca-certificates \
fonts-liberation \
libasound2 \
libatk-bridge2.0-0 \
libatk1.0-0 \
libatspi2.0-0 \
libcups2 \
libdbus-1-3 \
libdrm2 \
libgbm1 \
libgtk-3-0 \
libnspr4 \
libnss3 \
libwayland-client0 \
libx11-6 \
libx11-xcb1 \
libxcb1 \
libxcomposite1 \
libxdamage1 \
libxext6 \
libxfixes3 \
libxrandr2 \
libxss1 \
libxtst6 \
lsb-release \
wget \
xdg-utils# Установка зависимостей
sudo yum install -y \
alsa-lib \
atk \
cups-libs \
gtk3 \
liberation-fonts \
libXcomposite \
libXcursor \
libXdamage \
libXext \
libXi \
libXrandr \
libXScrnSaver \
libXtst \
pango \
xorg-x11-fonts-100dpi \
xorg-x11-fonts-75dpi \
xorg-x11-fonts-cyrillic \
xorg-x11-fonts-misc \
xorg-x11-fonts-Type1# Создание таблиц базы данных (автоматически при первом запуске)
npm start# С автоперезагрузкой при изменениях
npm run dev# Оптимизированный запуск
npm start# Использование PM2
npm install -g pm2
pm2 start server/index.js --name "threads-bot"
pm2 startup
pm2 save# Использование PM2
npm install -g pm2
pm2 start server/index.js --name "threads-bot"
pm2-windows-startup
pm2 save- Создайте файл
.env:copy .env.example .env - Настройте переменные окружения (опционально):
# Настройки базы данных (обязательно) DB_HOST=localhost DB_USER=root DB_PASSWORD=your_password DB_NAME=threads_automation # API ключи ИИ (опционально - резервные значения) OPENAI_API_KEY=sk-your-openai-key-here ANTHROPIC_API_KEY=sk-ant-your-anthropic-key-here OPENROUTER_API_KEY=sk-or-your-openrouter-key-here
- Откройте веб-интерфейс:
http://localhost:3000 - Добавьте аккаунт Threads:
- Перейдите в раздел "Аккаунты"
- Добавьте новый аккаунт
- Введите cookies из браузера (см. инструкцию ниже)
- Войдите в свой аккаунт на threads.net
- Откройте DevTools (F12)
- Перейдите в Network (вкладка Сеть)
- Обновите страницу (F5)
- Найдите любой запрос к threads.net
- Кликните правой кнопкой → Copy → Copy as cURL
- Найдите часть с Cookie и скопируйте всю строку после
Cookie:
Пример правильного формата:
sessionid=1234567890abcdef; csrftoken=abc123def456; ds_user_id=12345678; ig_did=AAAABBBB-CCCC-DDDD-EEEE-FFFFFFFFFFFF; mid=ZabCdE; datr=AbCdEfGhIjKlMnOp
- Установите расширение "Cookie Editor" или "EditThisCookie"
- Перейдите на threads.net (будучи авторизованным)
- Откройте расширение и найдите cookies для threads.net
- Экспортируйте в текстовом формате (не JSON!)
- Скопируйте строку в формате
name1=value1; name2=value2; ...
- Откройте threads.net (будучи авторизованным)
- Откройте Console (F12 → Console)
- Введите команду:
document.cookie - Скопируйте результат - это готовая строка cookies
- sessionid - основной cookie авторизации (обязательно!)
- csrftoken - токен защиты от CSRF атак
- ds_user_id - ID пользователя Instagram/Threads
- ig_did - идентификатор устройства
Способ 1: Через веб-интерфейс (основной)
- Перейдите в раздел "Настройки"
- Выберите провайдера (OpenAI/Anthropic/OpenRouter)
- Введите API ключ
- Протестируйте подключение
- Выберите модель
- Настройте системный промт
Способ 2: Через .env файл (резервный)
- Добавьте API ключи в
.env:OPENAI_API_KEY=sk-your-actual-openai-key-here ANTHROPIC_API_KEY=sk-ant-your-actual-anthropic-key-here OPENROUTER_API_KEY=sk-or-your-actual-openrouter-key-here
- Перезапустите сервер:
npm start - Проверьте статус в "Настройки" - появится секция с резервными ключами
- Протестируйте ключи из .env
💡 Как работает приоритет:
- Первый приоритет: API ключ из базы данных (веб-интерфейс)
- Второй приоритет: API ключ из .env файла (резервный)
- Ошибка: Если ни один не найден
- OpenAI:
gpt-4 - Anthropic:
claude-3-sonnet - OpenRouter:
Google: Gemini 2.5 Flash
- Перейдите в "Задания"
- Нажмите "Создать задание"
- Заполните параметры:
- URL страницы: Ссылка на профиль, поиск или тег Threads
- Аккаунт: Выберите настроенный аккаунт
- Ключевые слова: Список через запятую для поиска
- Действия: Лайки и/или комментарии
- Лимиты: Количество постов и время выполнения
- Профиль:
https://www.threads.net/@username - Поиск:
https://www.threads.net/search?q=artificial+intelligence - Тег:
https://www.threads.net/search?q=%23ai
- По умолчанию включен для безопасности
- Генерирует комментарии, но не отправляет их
- Сохраняет в логи для анализа качества
- Отключается только в коде (защита от случайной активации)
- Случайные паузы между действиями (30-120 сек)
- Прокрутка страницы как настоящий пользователь
- Различные паттерны взаимодействия
- Избегание подозрительной активности
- Исключение рекламы и спама
- Проверка качества постов
- Минимальные лимиты лайков/комментариев
- Sentiment анализ для избежания негатива
- Автоматическая категоризация постов
- Детальная статистика по дням
- Графики активности в дашборде
- Экспорт данных для внешнего анализа
# Linux: Установка недостающих зависимостей
sudo apt-get install -y chromium-browser
# Альтернативная установка Chromium
npx puppeteer browsers install chrome- Проверьте статус MySQL:
# Linux
sudo systemctl status mysql
# Windows (в Services.msc)
# Найдите "MySQL80" и убедитесь что запущен- Проверьте настройки в
.env - Убедитесь что пользователь имеет права доступа
- Симптомы: ошибки авторизации, бот не может зайти в аккаунт
- Причины:
- Cookies истекли по времени
- Сменился пароль аккаунта
- Неправильный формат cookies (JSON вместо текстового)
- Решение:
- Перелогиньтесь в Threads в браузере
- Получите новые cookies в текстовом формате (см. инструкцию выше)
- Убедитесь что формат правильный:
name1=value1; name2=value2; ... - Обновите cookies в разделе "Аккаунты"
- Протестируйте подключение
- Проверка: в логах должно быть
✅ Cookies загружены из базы данных
- Проверьте баланс на аккаунте ИИ провайдера
- Убедитесь в валидности API ключа
- Проверьте лимиты запросов
- Попробуйте другую модель
# Найти процесс на порту 3000
# Linux
sudo lsof -i :3000
# Windows
netstat -ano | findstr :3000
# Убить процесс или изменить PORT в .env# Логи сервера
tail -f logs/server.log
# Логи ошибок
tail -f logs/error.log
# Логи PM2 (если используется)
pm2 logs threads-botВ .env добавьте:
DEBUG=true
LOG_LEVEL=debug
PUPPETEER_HEADLESS=false # Для визуального контроля✅ Безопасность:
- API ключи не хранятся в базе данных
- Легко исключить из git через
.gitignore - Единое место для всех секретных данных
✅ Удобство разработки:
- Быстрая настройка для новых инсталляций
- Резервные значения для тестирования
- Легкая смена ключей без веб-интерфейса
✅ DevOps дружелюбность:
- Поддержка docker secrets
- Интеграция с CI/CD пайплайнами
- Переменные окружения для продакшн
| Ситуация | Рекомендация |
|---|---|
| Разработка/тестирование | .env файл для быстрой настройки |
| Продакшн с одним ключом | .env файл для безопасности |
| Несколько команд/аккаунтов | Веб-интерфейс для гибкости |
| Частая смена ключей | Веб-интерфейс для удобства |
{
"pauseBetweenActions": "60-120 секунд",
"postLimit": "20-50 постов за сессию",
"timeLimit": "2-4 часа максимум",
"dailyLimit": "1-2 сессии в день",
"weeklyRest": "1-2 дня без активности"
}- Используйте тестовый режим для проверки качества
- Мониторьте результаты в логах
- Избегайте агрессивной автоматизации
- Соблюдайте условия использования Threads
- Регулярно обновляйте cookies (каждые 1-2 недели)
- Проверяйте формат cookies - только текстовый, не JSON!
- Не делитесь cookies с третьими лицами
- Настройте качественный промт
- Добавляйте плохие примеры в настройках
- Проверяйте генерируемые комментарии
- Используйте разные стили для естественности
- Избегайте повторений и шаблонности
GET /api/accounts # Список аккаунтов
POST /api/accounts # Создать аккаунт
PUT /api/accounts/:id # Обновить аккаунт
DELETE /api/accounts/:id # Удалить аккаунт
POST /api/accounts/:id/test # Тест подключения
GET /api/tasks # Список заданий
POST /api/tasks # Создать задание
PUT /api/tasks/:id # Обновить задание
DELETE /api/tasks/:id # Удалить задание
POST /api/tasks/:id/start # Запустить задание
POST /api/tasks/:id/stop # Остановить задание
GET /api/tasks/service/status # Статус сервиса
GET /api/logs # Список логов (пагинация)
GET /api/logs/search # Поиск по логам
GET /api/logs/stats # Статистика
POST /api/logs/export # Экспорт в CSV
GET /api/settings # Список настроек
POST /api/settings # Создать настройку
PUT /api/settings/:id # Обновить настройку
DELETE /api/settings/:id # Удалить настройку
POST /api/settings/:id/test # Тест API ключа
threads-bot/
├── 🗂️ server/ # Backend сервер
│ ├── 📁 config/
│ │ └── 📄 database.js # Настройки БД
│ ├── 📁 middleware/
│ │ └── 📄 apiLogger.js # Логирование API
│ ├── 📁 routes/ # API маршруты
│ │ ├── 📄 accounts.js # Управление аккаунтами
│ │ ├── 📄 tasks.js # Управление заданиями
│ │ ├── 📄 logs.js # Логи и статистика
│ │ ├── 📄 settings.js # Настройки ИИ
│ │ └── 📄 bad-examples.js # Плохие примеры
│ ├── 📁 services/ # Бизнес-логика
│ │ ├── 📄 aiService.js # Сервис ИИ
│ │ └── 📄 threadsService.js # Автоматизация Threads
│ ├── 📁 utils/
│ │ └── 📄 logger.js # Система логирования
│ └── 📄 index.js # Главный файл сервера
├── 🗂️ public/ # Frontend ресурсы
│ ├── 📁 js/ # JavaScript
│ │ ├── 📄 app.js # Основные функции
│ │ ├── 📄 dashboard.js # Дашборд
│ │ ├── 📄 tasks.js # Управление заданиями
│ │ ├── 📄 logs.js # Просмотр логов
│ │ ├── 📄 accounts.js # Управление аккаунтами
│ │ └── 📄 settings.js # Настройки ИИ
│ └── 📁 css/
│ └── 📄 style.css # Стили
├── 🗂️ views/ # EJS шаблоны
│ ├── 📄 layout.ejs # Основной шаблон
│ ├── 📄 dashboard.ejs # Дашборд
│ ├── 📄 tasks.ejs # Задания
│ ├── 📄 logs.ejs # Логи
│ ├── 📄 accounts.ejs # Аккаунты
│ └── 📄 settings.ejs # Настройки
├── 📁 cookies/ # Cookies для авторизации
├── 📁 images/ # Изображения и скриншоты
│ └── 📄 dash.png # Скриншот дашборда
├── 📁 logs/ # Файлы логов
├── 📄 package.json # Зависимости
├── 📄 .env.example # Пример настроек
├── 📄 .gitignore # Игнорируемые файлы
└── 📄 README.md # Документация
- Форкните репозиторий
- Создайте ветку для фичи:
git checkout -b feature/new-feature - Внесите изменения
- Создайте pull request
При создании issue укажите:
- Версию Node.js и ОС
- Шаги для воспроизведения
- Ожидаемое поведение
- Логи ошибок
MIT License - см. файл LICENSE
Full-Stack Developer & AI Automation Specialist
Создатель инновационных решений для автоматизации социальных сетей и AI-интеграций
🔗 Связаться со мной:
- 📢 Telegram канал: @digitalbizpro - Автоматизация бизнеса с помощью ИИ
- 💬 Личный чат: @Evgenfalcon - Вопросы и предложения
- 🧵 Threads: @evgeniiorel - Обсуждения и анонсы
- 📺 YouTube: AI Sphere - Обучающие видео
💡 Если проект оказался полезным, поставьте ⭐ звездочку на GitHub!
Этот сервис предназначен только для образовательных целей.
- Автоматизация может нарушать условия использования Threads
- Используйте на свой страх и риск
- Соблюдайте правила платформы и местные законы
- Мы не несем ответственности за блокировку аккаунтов
- Проверьте FAQ в документации
- Просмотрите логи на наличие ошибок
- Создайте issue с детальным описанием проблемы
