Перейти к содержимому
Socialift
Платформа

Интеграция TikTok API

Socialift подключает TikTok API к тому же Python SDK, что Instagram, Facebook и LinkedIn: OAuth через Login Kit с access token на 24 часа и refresh token на 365 дней, профиль и видео автора, публикация видео и фото-каруселей через Content Posting API, статистика и комментарии Business Account API, а также проверка подписи вебхуков.

Обновлено:

Что можно делать через TikTok API

TikTok API — набор официальных интерфейсов TikTok for Developers. После того как пользователь дал доступ через Login Kit, приложение может читать его профиль и видео, публиковать видео и фото-карусели через Content Posting API, а через Business Account API — работать со статистикой видео и комментариями.

Особенности TikTok усложняют интеграцию: access token живёт всего 24 часа, а при обновлении может прийти новый refresh token, который должен заменить сохранённый. Open API v2 оборачивает каждый ответ в объект error (при успехе code: "ok"), а Business API использует свой конверт code/message — поэтому проверяйте тело ответа, а не только HTTP-статус.

Socialift берёт механику на себя: refresh_token() возвращает TokenBundle с новыми access и refresh токенами (хранит их ваше приложение — SDK ничего не сохраняет), для аккаунтов, подключённых в кабинете, эндпоинт обновления сервера (POST /tiktok/auth/refresh, есть и в Playground) записывает новые токены в зашифрованном виде, а коды ошибок TikTok поднимаются как AuthError, PermissionError, RateLimitError или ApiError — как на других платформах.

Что поддерживается на стороне TikTok

01

OAuth через Login Kit

Авторизация, обмен кода на токен, обновление и отзыв. TokenBundle содержит expires_at и refresh_expires_at для access token на 24 часа и refresh token на 365 дней.

02

Профиль и видео

Профиль автора, список видео постранично или целиком, а также данные видео по конкретным ID.

03

Публикация видео

Content Posting API: по ссылке или прямой загрузкой файла частями, с отслеживанием статуса публикации.

04

Фото-карусели и черновики

Пост из нескольких изображений или отправка контента в черновики автора в TikTok.

05

Business Account API

Статистика видео и аккаунта; чтение комментариев, ответы, скрытие, удаление, лайки и закрепление.

06

Вебхуки

verify_tiktok_request проверяет заголовок TikTok-Signature (HMAC-SHA256 от метки времени и тела) с окном защиты от replay; в кабинете события дедуплицируются, а при authorization.removed аккаунт деактивируется.

Публикация видео — начиная с creator_info

По правилам TikTok перед каждой публикацией запрашивается creator_info, а уровень приватности пользователь выбирает из этого списка сам — без значения по умолчанию.

publish.py
import asyncio
from socialift import TikTok

async def main(token: str, privacy_level: str):
    async with TikTok.from_env() as tt:          # TIKTOK_CLIENT_KEY / TIKTOK_CLIENT_SECRET
        info = await tt.creator_info(token)
        # privacy_level — значение, которое пользователь сам выбрал из info["privacy_level_options"]
        if privacy_level not in info["privacy_level_options"]:
            raise ValueError("уровень приватности недоступен для этого автора")
        result = await tt.publish_video(token, video_url="https://cdn.example.com/reel.mp4",
                                        title="Новая коллекция", privacy_level=privacy_level, wait=True)
        print(result["publish_id"])
        # Домен не подтверждён — загрузите сам файл частями
        await tt.publish_video(token, video="reel.mp4", privacy_level=privacy_level)

asyncio.run(main("ACCESS_TOKEN", privacy_level="SELF_ONLY"))  # значение из формы публикации

При video_url TikTok сам скачивает файл, поэтому домен с медиа должен быть подтверждён в кабинете разработчика TikTok. При video= файл загружается частями, и подтверждение домена не требуется.

wait=True ждёт, пока TikTok обработает видео (до ~2 минут; при FAILED или тайм-ауте — ApiError). Если отправить без ожидания, статус проверяется позже через await tt.publish_status(publish_id, token). Для фото-карусели используется await tt.publish_photos(token, photo_urls=[...], title="...", privacy_level=privacy_level).

В пробный месяц (первые 30 дней) токен открывает все возможности SDK, в том числе публикацию (creator_info, publish_video, publish_photos, upload_video) и статистику (business_videos, business_account). После продления возможности зависят от тарифа токена — точный список показывает «Tekshirish va muhitlar» (проверка и окружения) в кабинете. Playground в кабинете работает независимо от тарифа.

Профиль, видео и комментарии

Профиль и видео доступны по токену Login Kit; статистика и комментарии работают через Business API и требуют доступа к Business API, выданного TikTok.

videos.py
import asyncio
from socialift import TikTok

async def main(token: str, video_id: str, comment_id: str):
    async with TikTok.from_env() as tt:
        profile = await tt.me(token)
        page = await tt.videos(token, limit=20)
        everything = await tt.iter_videos(token, max_items=100)

        # Business API: business_id — open_id автора
        biz = profile.id
        stats = await tt.business_videos(token, business_id=biz, max_count=20)
        account = await tt.business_account(token, business_id=biz)
        comments = await tt.comments(video_id, token, business_id=biz)
        await tt.reply_comment(comment_id, token, "Спасибо!", video_id=video_id, business_id=biz)

asyncio.run(main("ACCESS_TOKEN", "VIDEO_ID", "COMMENT_ID"))

Business-эндпоинт, для которого в SDK нет отдельного метода, тоже можно вызвать: await tt.business("business/get/", token, method="GET", params={...}). Ошибки и повторные попытки работают так же, как в остальных методах.

Что требуется для каждой возможности

TikTok API состоит из нескольких продуктов, и у каждого свои условия. Таблица помогает спланировать интеграцию заранее.

Что требуется для каждой возможности — Таблица возможностей по платформам
ВозможностьМетод SDKУсловие со стороны TikTok
Профиль и видеоme · videos · iter_videos · videoOAuth через Login Kit
Публикация видео — по ссылкеpublish_video(video_url=…)Домен с медиа подтверждён в кабинете TikTok
Публикация видео — загрузка файлаpublish_video(video=…)Подтверждение домена не нужно
Фото-карусельpublish_photosТолько по ссылке (PULL_FROM_URL), до 35 изображений, подтверждённый домен или URL-префикс
Публичный постprivacy_levelПриложение прошло аудит; иначе SELF_ONLY, закрытый аккаунт, ≤5 пользователей за 24 ч
Статистика и комментарииbusiness_videos · business_account · commentsБизнес-аккаунт TikTok и доступ к Business API, выданный TikTok
Вебхукиverify_tiktok_requestПодпись TikTok-Signature

Эти условия устанавливает TikTok — ни один SDK не может их обойти.

Подключение TikTok — четыре шага

  1. Создайте приложение TikTok

    В TikTok for Developers создайте приложение, добавьте Login Kit и нужные продукты, получите client key и client secret.

  2. Добавьте ключи в Socialift

    Введите client key и secret на странице «Kalitlar» (ключи): они хранятся в зашифрованном виде и проверяются на стороне TikTok в один клик. После сохранения там появятся redirect URI и адрес вебхука.

  3. Настройте redirect URI и вебхук

    Вставьте этот redirect URI в Login Kit, а адрес вебхука — в кабинет TikTok. Если публикуете по ссылке, подтвердите домен или URL-префикс с медиа.

  4. Подключите аккаунт и проверьте

    На странице «Ulanishlar» (подключения) подключите аккаунт TikTok через OAuth, отправьте первый запрос в Playground и перенесите готовый код в SDK.

Перед выходом в прод

  • При обновлении может вернуться другой refresh token — всегда сохраняйте значение из последнего ответа.
  • Access token живёт 24 часа: учитывайте обновление в долгих фоновых задачах.
  • Перед каждой публикацией вызывайте creator_info, а privacy_level пусть пользователь выбирает только из полученного списка.
  • Приложение без аудита может публиковать только с приватностью SELF_ONLY, с закрытого аккаунта и не более чем для 5 пользователей за 24 часа — это правило TikTok.
  • Для публикации по ссылке заранее подтвердите домен или загружайте файл напрямую.
  • Не полагайтесь только на HTTP-статус: в ответе Open API v2 есть строковый error.code (ok при успехе) и log_id, который запрашивает поддержка TikTok.

Частые вопросы

Можно ли загружать видео в TikTok через API?

Да. Через Content Posting API видео публикуется по ссылке или прямой загрузкой файла частями. Перед публикацией обязателен запрос creator_info, а способ со ссылкой требует домена, подтверждённого в кабинете TikTok.

Почему пост виден только мне (SELF_ONLY)?

Пока приложение не прошло аудит TikTok, посты через API возможны только с SELF_ONLY, аккаунт автора должен быть закрытым, а публиковать через приложение могут не более 5 пользователей за 24 часа. После аудита используйте уровни из creator_info; дневной лимит постов на автора (обычно около 15) действует всё равно.

Можно ли читать комментарии TikTok и отвечать на них через API?

Да, через Business (Accounts) API TikTok: список комментариев, ответы, скрытие, удаление, лайки и закрепление. Нужен бизнес-аккаунт TikTok и доступ к Business API, выданный TikTok.

Сколько живёт токен TikTok?

Access token живёт 24 часа, refresh token — 365 дней. При обновлении может прийти другой refresh token — всегда храните последний. С SDK TokenBundle сохраняете вы; для аккаунтов из кабинета эндпоинт обновления сервера записывает новые токены в зашифрованном виде.

Можно ли публиковать истории (Stories) TikTok через API?

Нет. Content Posting API умеет только видео- и фотопосты: в официальном справочнике Direct Post нет ни отдельного эндпоинта, ни значения post_mode для историй. Это не ограничение Socialift — таковы границы самого API TikTok, а истории публикуются только в приложении TikTok. Поэтому любой контент, отправленный через API, выходит обычным постом с уровнем privacy_level из ответа creator_info.

Socialift — официальный партнёр TikTok?

Нет. Socialift — независимый слой интеграции поверх публичных API TikTok. Статуса официального партнёра TikTok у него нет.

Источники

  1. TikTok — Manage user access tokens
  2. TikTok — Content Sharing Guidelines
  3. TikTok — Photo post API reference
  4. TikTok — Direct Post API reference
  5. TikTok — API v2 error handling
  6. TikTok — Webhooks verification
  7. TikTok — Webhook events

Связанные страницы

Подключите и TikTok

Получите токен, добавьте ключи своего приложения TikTok и отправьте первый запрос в Playground.

Получить бесплатный токен →