Неофициальный Go SDK для работы с API социальной сети итд.com
Версия: 0.4.0
Made with ❤️ by @Slipynil
Package itd-go — библиотека для работы с API социальной сети итд.com.
Документация библиотеки доступна на pkg.go.dev.
Important
Это неофициальный SDK. API итд.com не документировано публично и может измениться без предупреждения. Используйте на свой риск. Авторы не несут ответственности за возможные блокировки аккаунта или другие последствия использования.
go get github.com/slipynil/itd-gopackage main
import (
"context"
"fmt"
"log"
itd "github.com/slipynil/itd-go"
"github.com/slipynil/itd-go/types"
)
func main() {
ctx := context.Background()
client, err := itd.New(ctx, itd.Config{
RefreshToken: "your_refresh_token",
UserAgent: "Mozilla/5.0 (X11; Linux x86_64) Gecko/20100101 Firefox/149.0",
})
if err != nil {
log.Fatalf("error creating client: %s\n", err)
}
// Create a post with text formatting and automatic file upload
builder := types.NewPost("Hello from itd-go!").Bold("itd-go")
post, err := client.Posts.Create(ctx, builder, "/path/to/image.jpg")
if err != nil {
log.Fatalf("error creating post: %s\n", err)
}
fmt.Printf("Post created: %s\n", post.ID)
// Iterate through feed
feed := client.Posts.NewFeed(types.FeedTabPopular, 20)
for feed.HasMore() {
posts, err := feed.Next(ctx)
if err != nil {
log.Fatalf("error fetching feed: %s\n", err)
}
for _, p := range posts {
fmt.Printf("%s: %s\n", p.Author.DisplayName, p.Content)
}
}
}- Откройте DevTools в браузере (F12)
- Перейдите на вкладку Application/Storage → Cookies
- Найдите cookie с именем
refresh_tokenдля доменаитд.com - Скопируйте значение
type Config struct {
RefreshToken string // обязательно: refresh token для аутентификации
UserAgent string // опционально: User-Agent для запросов
Timeout time.Duration // опционально: таймаут HTTP запросов (по умолчанию 30s)
WithoutBanner bool // опционально: отключить баннер при инициализации
}- Posts API: создание, удаление, лайки, репосты, голосование в опросах, пагинация ленты
- Text Formatting: форматирование текста постов через PostBuilder (жирный, курсив, подчёркивание, зачёркивание, спойлер, моноширинный, ссылки)
- User API: профили пользователей, подписки, обновление профиля
- Comments API: комментарии и ответы, лайки, редактирование, пагинация
- Notifications API: получение уведомлений, пометка как прочитанных, real-time стрим через SSE
- Automatic File Upload: автоматическая загрузка файлов при создании постов и комментариев
- Iterator Pattern: удобная пагинация через итераторы для всех списочных методов
- Token Management: автоматическое обновление access token из refresh token
Полный список методов доступен в документации.
Библиотека требует Go 1.26 или выше.
Примеры использования всех API методов находятся в директории examples/:
examples/posts/— работа с постамиexamples/user/— работа с пользователямиexamples/comments/— работа с комментариямиexamples/notifications/— работа с уведомлениями