> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# TikTok API

> Опції публікації через TikTok API

<Info>
  Ayrshare пропонує [пряму публікацію відео TikTok](https://www.ayrshare.com/blog/introducing-tiktok-direct-publishing-analytics-and-commenting/), керування коментарями та отримання розширеної аналітики для вашого особистого чи бізнес-облікового запису TikTok через TikTok API.

  TikTok обробляє відео та фотографії асинхронно, тому JSON-відповідь буде status: "pending" як для миттєвих, так і для запланованих дописів. Щойно TikTok завершить обробку, буде викликано ваш зареєстрований [Scheduled Action webhook](/apis/webhooks/actions#scheduled-action).
</Info>

## Відео-допис у TikTok

JSON для базового відео-допису TikTok, який публікується напряму:

```json TikTok Video Post theme={"system"}
{
  "post": "The best TikTok \n video ever #bestvideo", // Max 2,200 characters with a line break
  "mediaUrls": ["https://img.ayrshare.com/012/tiktok.mp4"],
  "platforms": ["tiktok"]
}
```

Приклад JSON-відповіді на публікацію:

```json TikTok Video Post Response theme={"system"}
{
  "status": "success",
  "errors": [],
  "postIds": [
    {
      "status": "success",
      "idShare": "video.7088122496758679353.nzLqBWbf",
      "id": "pending",
      "isVideo": true,
      "platform": "tiktok"
    }
  ],
  "id": "lb42orDhySAZmLWtj6b6",
  "refId": "23a9da9e0df1184a7a6a1fc2c60b8023aa9a32a1",
  "post": "The best TikTok video ever #bestvideo"
}
```

<ul class="custom-bullets">
  <li>
    TikTok наразі не підтримує розриви рядків у тексті допису. Включені розриви рядків будуть
    проігноровані.
  </li>

  <li>
    Можна опублікувати або одне відео, або до 35 зображень. TikTok не підтримує комбінацію
    відео та зображень. Див. нижче для отримання додаткової інформації.
  </li>

  <li>
    Якщо відео не закінчується відомим розширенням, використовуйте
    [isVideo](/apis/post/overview#video-extension).
  </li>

  <li>
    TikTok також підтримує надсилання медіа без тексту допису. Якщо ви не хочете включати текст допису,
    надішліть порожній рядок `post: ""`.
  </li>

  <li>
    Див. [TikTok Media Guidelines](/media-guidelines/tiktok) та [TikTok
    Authorization](/dashboard/connect-social-accounts/tiktok) для отримання додаткової інформації.
  </li>
</ul>

### Вимоги до відео TikTok

<ul class="custom-bullets">
  <li>Див. [TikTok Video Requirements](/media-guidelines/tiktok#video).</li>

  <li>
    Відео має закінчуватися відомим розширенням відео, як-от mp4. Використайте reverse proxy для URL,
    додайте [vanity URL з
    CDN](https://www.ayrshare.com/blog/how-to-put-a-cdn-in-front-of-firebase-cloud-storage/), або використовуйте
    ендпоінт [/media](/apis/media/overview).
  </li>

  <li>Обмеження символів тексту допису TikTok — 2 200.</li>
</ul>

<Note>
  TikTok обмежує API-публікацію відео до 6 відео за хвилину з верхнім лімітом 15 відео на
  день.
</Note>

## Фото-допис у TikTok

JSON для базового фото-допису TikTok, який публікується напряму:

```json TikTok Image Post theme={"system"}
{
  "post": "The best TikTok \n video ever #bestvideo", // Max 2,200 characters with a line break
  "mediaUrls": [
    "https://img.ayrshare.com/012/gb.jpg",
    "https://img.ayrshare.com/random/photo-1.jpg"
  ], // Up to 35 images
  "platforms": ["tiktok"]
}
```

Приклад JSON-відповіді:

```json TikTok Image Post Response theme={"system"}
{
  "status": "success",
  "errors": [],
  "postIds": [
    {
      "status": "success",
      "idShare": "p_pub_url~v2.7408974036430047275",
      "id": "pending",
      "isVideo": false,
      "platform": "tiktok"
    }
  ],
  "id": "8815mJ5bWApEebWjE233",
  "tikTokId": "p_pub_url~v2.7408974036430047333",
  "refId": "9abf1426d6ce9122ef11c72bd62e59807c5cc333",
  "post": "Opportunity is missed by most people because it is dressed in overalls and looks like work - Thomas Edison"
}
```

<ul class="custom-bullets">
  <li>
    TikTok наразі не підтримує розриви рядків у тексті допису. Включені розриви рядків будуть
    проігноровані.
  </li>

  <li>Можна опублікувати або одне відео, або до 35 зображень.</li>

  <li>
    TikTok не підтримує комбінацію відео та зображень. Див. нижче для отримання додаткової інформації.
  </li>

  <li>Зображення мають бути типу JPG, JPEG або WEBP. TikTok не приймає медіафайли PNG.</li>

  <li>
    Ви також можете вибрати одне із зображень як обкладинку за допомогою `imageCoverIndex`. За замовчуванням
    використовується перше зображення. Див. деталі нижче.
  </li>
</ul>

### Вимоги до зображень TikTok

<ul class="custom-bullets">
  <li>Див. [TikTok Image Requirements](/media-guidelines/tiktok#images).</li>
  <li>До допису може бути включено до 35 зображень по 20 МБ на зображення.</li>
  <li>Зображення мають бути типу JPG, JPEG або WEBP. TikTok не приймає медіафайли PNG.</li>
  <li>Обмеження символів тексту допису TikTok — 2 200.</li>
</ul>

<Note>
  TikTok обмежує API-публікацію до 6 фото за хвилину з верхнім лімітом 15 фото на
  день.
</Note>

## Обробка у TikTok

TikTok виконує асинхронну обробку відео та зображень, тому у відповіді поле `id` буде встановлене на `"pending"`.
Після завершення обробки TikTok, зазвичай протягом 1–2 хвилин, поле `id` буде оновлено `id` відео TikTok, і буде додано `postUrl`.

<ul class="custom-bullets">
  <li>
    Ви можете отримати остаточний статус допису TikTok за допомогою
    [webhooks](/apis/webhooks/actions#tiktok-publishing-webhook) або ендпоінта
    [/history](/apis/history/overview); зазвичай це доступно протягом 1–2 хвилин.
  </li>

  <li>
    Коли користувач публікує відео в мобільному застосунку TikTok, буде надіслано webhook "scheduled"
    з `subAction: "tikTokPublished"`.
  </li>

  <li>
    [Перший коментар](/apis/post/overview#first-comment) до допису TikTok відкладено: він публікується
    автоматично, коли webhook `tikTokPublished` розв'язує реальне `id` відео, а не в момент публікації.
    `visibility` відео має бути `public`, інакше перший коментар не може бути опубліковано і повертається
    помилка коментаря.
  </li>

  <li>
    Якщо станеться помилка, як-от TikTok не зміг обробити відео або внутрішні тести Ayrshare
    завершилися невдачею, поле `id` буде встановлено як "failed", а поле `errors` буде містити деталі
    помилки.
  </li>

  <li>`idShare` використовується для внутрішнього посилання на очікуване відео.</li>
</ul>

## TikTok Options

Під час публікації відео чи зображень у TikTok доступні [додаткові опції](/apis/post/social-networks/tiktok#available-tiktok-options).

Приклад публікації відео:

```json TikTok Video Publishing theme={"system"}
{
  "tikTokOptions": {
    "disableComments": true, // Default false. Disable comments on the published video.
    "disableDuet": true, // Default false. Disable duets on the published video.
    "disableStitch": true // Default false. Disable stitches on the published video.
  }
}
```

Приклад публікації зображень:

```json TikTok Image Publishing theme={"system"}
{
  "tikTokOptions": {
    "imageCoverIndex": 1, // Use the second image in the mediaUrls.
    "title": "Amazing images"
  }
}
```

### Опції

Для дописів TikTok доступні наведені нижче опції.
Їх слід додавати до об'єкта `tikTokOptions`.
Див. нижче деталі щодо кожної опції.

```json TikTok Options theme={"system"}
{
  "post": "The best TikTok video ever #bestvideo",
  "mediaUrls": ["https://img.ayrshare.com/012/tiktok.mp4"],
  "platforms": ["tiktok"],
  "tikTokOptions": {
    "autoAddMusic": true,
    "disableComments": true,
    "disableDuet": true,
    "disableStitch": true,
    "draft": true,
    "isAIGenerated": true,
    "isBrandedContent": true,
    "isBrandOrganic": true,
    "imageCoverIndex": 1,
    "title": "Amazing images",
    "thumbNailOffset": 30000,
    "visibility": "public"
  }
}
```

<ParamField body="autoAddMusic" type="boolean" default={false}>
  Чи автоматично додавати рекомендовану музику до допису.
  Якщо ви встановите це поле у `true`, ви зможете змінити музику пізніше у застосунку TikTok.

  Media type: image
</ParamField>

<ParamField body="disableComments" type="boolean" default={false}>
  Чи вимикати коментарі до опублікованого допису.

  Media type: video, image
</ParamField>

<ParamField body="disableDuet" type="boolean" default={false}>
  Вимкнути duets на опублікованому відео.

  Media type: video
</ParamField>

<ParamField body="disableStitch" type="boolean" default={false}>
  Вимкнути stitch на опублікованому відео.

  Media type: video
</ParamField>

<ParamField body="draft" type="boolean" default={false}>
  Чи створити draft-допис.

  Див. [опції draft](/apis/post/social-networks/tiktok#tiktok-video-draft-post) для отримання додаткової інформації.

  Media type: video or image
</ParamField>

<ParamField body="isAIGenerated" type="boolean" default={false}>
  Чи вмикати перемикач AI-згенерованого контенту для відео-допису.

  Якщо ви ввімкнете перемикач, ваше відео буде помічене як "Creator labeled as AI-generated" після публікації, і це не можна буде змінити.
  Мітка "Creator labeled as AI-generated" вказує, що вміст був повністю згенерований ШІ або значно відредагований за допомогою ШІ.

  <Note>
    Увімкнення налаштування AI-генерованого контенту не вплине на розповсюдження вашого відео, поки
    воно не порушує [Community Guidelines](https://www.tiktok.com/community-guidelines/en/) TikTok.
  </Note>

  Media type: video
</ParamField>

<ParamField body="isBrandedContent" type="boolean" default={false}>
  Чи вмикати перемикач <a href="https://creatormarketplace.tiktok.com/help#/doc/9493/10008169">Branded Content</a>. Якщо це поле встановлено у `true`, відео буде помічене як Branded Content, що вказує на те, що ви перебуваєте у платному партнерстві з брендом. До відео буде додано мітку "Paid partnership".

  Media type: video, image
</ParamField>

<ParamField body="isBrandOrganic" type="boolean" default={false}>
  Чи вмикати перемикач Brand Organic Content. Якщо це поле встановлено у `true`, відео буде помічене як Brand Organic Content, що вказує на те, що ви просуваєте себе або власний бізнес. До відео буде додано мітку "Promotional content".

  Media type: video, image
</ParamField>

<ParamField body="imageCoverIndex" type="number" default="0">
  Індекс у `mediaUrls` для використання як обкладинки допису.

  Media type: image
</ParamField>

<ParamField body="title" type="string">
  Заголовок допису.

  Media type: image
</ParamField>

<ParamField body="thumbNailOffset" type="number">
  Кадр для використання як обкладинка відео.

  Див. [опції відео-мініатюри](/apis/post/social-networks/tiktok#video-thumbnail) для отримання додаткової інформації.

  Media type: video
</ParamField>

<ParamField body="visibility" type="string" default="public">
  Як допис поширюється і хто може його бачити.

  Значення: `public`, `private`, `followers` або `friends`.

  Див. [опції видимості](/apis/post/social-networks/tiktok#visibility-options) для отримання додаткової інформації.

  Media type: image
</ParamField>

### Опції видимості

| Видимість | Опис                                            |
| :-------- | :---------------------------------------------- |
| public    | Видно всім користувачам TikTok.                 |
| private   | Приватний, видно лише самому обліковому запису. |
| followers | Видно лише підписникам облікового запису.       |
| friends   | Видно лише взаємним підписникам.                |

Приватні дописи залишатимуться в статусі `pending`, і webhook TikTok не буде надіслано, доки допис не стане публічним.

## Мініатюра відео

Існує два способи встановити мініатюру, також відому як cover photo, для відео TikTok:

1. За допомогою параметра `thumbNailOffset`, щоб встановити кадр мініатюри.
2. За допомогою параметра `thumbNail`, щоб встановити зображення мініатюри за URL.

Встановлення мініатюри підтримується лише для відео.

### Зміщення мініатюри

Встановіть мініатюру для відео TikTok, вибравши кадр за зміщенням.

```json TikTok Video Thumbnail Offset theme={"system"}
{
  "tikTokOptions": {
    "thumbNailOffset": 30000 // milliseconds of offset image
  }
}
```

Зміщення — це розташування у мілісекундах кадру мініатюри. Значення за замовчуванням `0`, це перший кадр відео.

### URL мініатюри

Встановіть мініатюру для відео TikTok, завантаживши зображення за URL.

```json TikTok Video Thumbnail URL theme={"system"}
{
  "tikTokOptions": {
    "thumbNail": "https://img.ayrshare.com/012/gb.jpg"
  }
}
```

Якщо ви використовуєте параметр `thumbNail`, параметр `thumbNailOffset` буде проігноровано.

Див. [TikTok Thumbnail Requirements](/media-guidelines/tiktok#video-thumbnail) для отримання додаткової інформації.

## Згадування у TikTok

Згадайте інший handle TikTok, додавши `@handle` у текст допису. Наприклад:

```json TikTok Mention theme={"system"}
{
  "post": "Love the @ayrshare social media api"
}
```

<Warning>
  Ознайомтеся з [важливими правилами](/testing/post-verification#mentions) щодо згадувань.
</Warning>

## Draft-допис у TikTok

Створіть draft-допис для відео чи зображення TikTok, що дозволяє редагувати відео або зображення перед публікацією.

```json TikTok Video Draft Post theme={"system"}
{
  "post": "The best TikTok video ever #bestvideo", // empty string is allowed
  "mediaUrls": ["https://img.ayrshare.com/012/tiktok.mp4"],
  "platforms": ["tiktok"],
  "tikTokOptions": {
    "draft": true
  }
}
```

Draft-допис відео або зображення можна знайти під сповіщеннями **Inbox** у нижньому рядку застосунку TikTok.
Шукайте повідомлення **System notifications** і потім натисніть верхнє повідомлення **Your content from Ayrshare is ready**.

Ayrshare `postUrl` залишатиметься в статусі `pending`, доки відео не буде опубліковано. Перший коментар не підтримується для draft-дописів.

<img src="https://mintcdn.com/ayrshare-docs/Nmrhj2Gh7WSf62Bh/images/apis/post/tiktok-draft-post.webp?fit=max&auto=format&n=Nmrhj2Gh7WSf62Bh&q=85&s=6e7fdce5ef106f6af6cd060bfbc446ba" alt="TikTok Draft Post" class="center" width="278" height="600" data-path="images/apis/post/tiktok-draft-post.webp" />

## Оновлення авторизації

TikTok повинен бути повторно авторизований *щороку* через сторінку Social Accounts.

<ul class="custom-bullets">
  <li>
    Сповіщення електронною поштою та webhook social action буде надіслано за 15 днів до закінчення
    авторизації.
  </li>

  <li>
    Дата, до якої потрібне оновлення, та кількість днів, що залишилися, можна отримати з
    ендпоінта [/user](/apis/user/overview).
  </li>
</ul>

## Обмеження символів

Див. [TikTok Character Limits](/help-center/technical-support/character_limits#tiktok-character-limits) для отримання додаткової інформації.

## Додаткова інформація

Додаткові [приклади використання TikTok API](https://www.ayrshare.com/blog/tiktok-api-how-to-post-to-tiktok-using-a-social-media-api/).
