Unofficial SDK for итд.com - Node.js library for working with API. Automatic token refresh, session management, and convenient methods for posts, comments, users, and notifications.
npm install itd-sdk-jsНеофициальная библиотека на Node.js для работы с API сайта итд.com. Упрощает написание ботов и скриптов: берет на себя авторизацию, поддержку сессий и предоставляет готовые методы для основных действий.
- Автоматический Refresh Token: вам не нужно вручную обновлять accessToken в коде. SDK сам подхватит новый, если старый протух, используя данные из .cookies.
- 34 готовых метода: от получения статистики постов до проверки подписок и работы с кланами.
- Минимум зависимостей: работает на axios и dotenv.
``bash`
npm install itd-sdk-js
`bash`
git clone https://github.com/FriceKa/ITD-SDK-js.git
cd ITD-SDK-js
npm install
1. Создайте .env в корне проекта на основе .env.example (или используйте переменные окружения).ITD_ACCESS_TOKEN
2. Токен: добавьте в .env или положите .cookies с refresh_token — клиент сам подхватит токен из .env или получит через refresh..cookies
3. Для авто-обновления токена создайте файл с Cookie из браузера (обязательно должен быть refresh_token).
SDK по умолчанию читает и пишет .env и .cookies в корне проекта (process.cwd()). При обновлении токена изменения сохраняются в ваш проект. При необходимости можно задать projectRoot или явные пути в конструкторе — см. API_REFERENCE.md.
JavaScript
`
import { ITDClient } from 'itd-sdk-js';
import dotenv from 'dotenv';
dotenv.config();
const client = new ITDClient();
// Один раз добавьте .cookies (refresh_token) или ITD_ACCESS_TOKEN в .env — дальше всё автоматически
// Получаем профиль и тренды
const myProfile = await client.getMyProfile();
const trending = await client.getTrendingPosts(10);
console.log(Авторизован как: ${myProfile.username});
`
JavaScript
`
// Простая проверка непрочитанных
if (await client.hasUnreadNotifications()) {
const list = await client.getUnreadNotifications(5);
console.log(list.notifications);
}
// Статистика конкретного поста
const stats = await client.getPostStats('uuid-поста');
console.log(${stats.likes} лайков, ${stats.views} просмотров);
`
Весь список методов разбит по категориям в документации:
- Посты: тренды, поиск, создание, удаление, статистика.
- Пользователи: профили, счетчики подписок, клановые эмодзи.
- Комментарии: получение топов, ответы, проверка наличия.
- Уведомления: фильтрация только непрочитанных, отметка о прочтении.
Полное описание каждого метода — в API_REFERENCE.md.
Опционально: для разгрузки запросов по нескольким аккаунтам можно использовать пул зеркал — см. раздел «Пул зеркал» в API_REFERENCE и импорт itd-sdk-js/mirrors. Обычный режим с одним аккаунтом не меняется.
`javascript`
// Пишем пост на стене другого пользователя (нужен wallRecipientId, SDK получит его сам)
await client.createWallPost('ITD_API', 'Тестовый пост на чужой стене 🦫');
- createPost и createWallPost при любой ошибке возвращают null — всегда проверяйте результат.
- Для загрузки файла и создания поста используется таймаут 120 с по умолчанию (uploadTimeout` в опциях клиента), чтобы запрос не зависал при 504 или медленной сети.
- При 5xx/429 или «API вернул null» рекомендуется повторять запрос в приложении (ретраи с задержкой). Подробнее — в API_REFERENCE.md.
Это неофициальный проект. Если разработчики сайта изменят структуру API или введут новую защиту, методы могут временно перестать работать. Используйте аккуратно и не спамьте запросами.
---
Документация: API_REFERENCE.md | Примеры кода: examples/README.md