itd-sdk-js
v1.1.0
Published
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.
Maintainers
Readme
ITD-SDK-js
Неофициальная библиотека на Node.js для работы с API сайта итд.com. Упрощает написание ботов и скриптов: берет на себя авторизацию, поддержку сессий и предоставляет готовые методы для основных действий.
Главное
- Автоматический Refresh Token: вам не нужно вручную обновлять
accessTokenв коде. SDK сам подхватит новый, если старый протух, используя данные из.cookies. - 34 готовых метода: от получения статистики постов до проверки подписок и работы с кланами.
- Минимум зависимостей: работает на
axiosиdotenv.
Установка
Через npm (рекомендуется)
npm install itd-sdk-jsИз исходников
git clone https://github.com/FriceKa/ITD-SDK-js.git
cd ITD-SDK-js
npm installНастройка
- Создайте
.envв корне проекта на основе.env.example(или используйте переменные окружения). - Токен: добавьте
ITD_ACCESS_TOKENв .env или положите.cookiesсrefresh_token— клиент сам подхватит токен из .env или получит через refresh. - Для авто-обновления токена создайте файл
.cookiesс 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();
// Токен подхватывается из .env. Если только .cookies — await client.ensureAuthenticated();
// Получаем профиль и тренды
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} просмотров`);
Что умеет SDK
Весь список методов разбит по категориям в документации:
- Посты: тренды, поиск, создание, удаление, статистика.
- Пользователи: профили, счетчики подписок, клановые эмодзи.
- Комментарии: получение топов, ответы, проверка наличия.
- Уведомления: фильтрация только непрочитанных, отметка о прочтении.
Полное описание каждого метода — в API_REFERENCE.md.
Пост на чужой стене (wall post)
// Пишем пост на стене другого пользователя (нужен 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
