> ## 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 API 检索个人或商业 TikTok 账户的高级分析。

  TikTok 异步处理视频和照片，因此对于立即和已安排的帖子，JSON 响应都将为 status: "pending"。TikTok 完成处理后，你已注册的 [Scheduled Action webhook](/apis/webhooks/actions#scheduled-action) 将被调用。
</Info>

## TikTok 视频帖子

直接发布的基本 TikTok 视频帖子的 JSON：

```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/tiktok) 和 [TikTok
    授权](/dashboard/connect-social-accounts/tiktok)。
  </li>
</ul>

### TikTok 视频要求

<ul class="custom-bullets">
  <li>请参见 [TikTok 视频要求](/media-guidelines/tiktok#video)。</li>

  <li>
    视频必须以已知的视频扩展名（如 mp4）结尾。请对 URL 进行反向代理，
    使用 [CDN 添加虚荣
    URL](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 图片帖子

直接发布的基本 TikTok 图片（照片）帖子的 JSON：

```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 图片要求](/media-guidelines/tiktok#images)。</li>
  <li>一个帖子最多可以包含 35 张图片，每张图片 20 MB。</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` 字段将被更新为 TikTok 视频的 `id`，并添加 `postUrl`。

<ul class="custom-bullets">
  <li>
    你可以使用 [webhook](/apis/webhooks/actions#tiktok-publishing-webhook) 或
    [/history](/apis/history/overview) 端点检索 TikTok 帖子的最终状态，通常需要 1-2 分钟才可用。
  </li>

  <li>
    当用户在 TikTok 移动应用中发布视频时，将发送一个 "scheduled" webhook，
    携带 `subAction: "tikTokPublished"`。
  </li>

  <li>
    TikTok 帖子上的 [首个评论](/apis/post/overview#first-comment) 被延迟：它在
    `tikTokPublished` webhook 解析真实视频 `id` 时自动发布，而不是在发布
    时间发布。视频 `visibility` 必须为 `public`，否则无法发布首个评论，并返回
    评论错误。
  </li>

  <li>
    如果发生错误，例如 TikTok 无法处理视频或 Ayrshare 内部测试
    失败，`id` 字段将设置为 "failed"，`errors` 字段将包含错误
    详情。
  </li>

  <li>`idShare` 用于内部引用待处理的视频。</li>
</ul>

## TikTok 选项

发布 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 应用中更改音乐。

  媒体类型：image
</ParamField>

<ParamField body="disableComments" type="boolean" default={false}>
  是否禁用已发布帖子的评论。

  媒体类型：video, image
</ParamField>

<ParamField body="disableDuet" type="boolean" default={false}>
  禁用已发布视频的合拍。

  媒体类型：video
</ParamField>

<ParamField body="disableStitch" type="boolean" default={false}>
  禁用已发布视频的拼接。

  媒体类型：video
</ParamField>

<ParamField body="draft" type="boolean" default={false}>
  是否创建草稿帖子。

  更多信息请参见 [草稿选项](/apis/post/social-networks/tiktok#tiktok-video-draft-post)。

  媒体类型：video 或 image
</ParamField>

<ParamField body="isAIGenerated" type="boolean" default={false}>
  是否为视频帖子启用 AI 生成的内容开关。

  如果启用该开关，你的视频将在发布后被标记为 "Creator labeled as AI-generated"，且无法更改。
  "Creator labeled as AI-generated" 标签表示内容完全由 AI 生成或经过 AI 大幅编辑。

  <Note>
    只要你的视频不违反 TikTok 的 [社区
    准则](https://www.tiktok.com/community-guidelines/en/)，开启 AI 生成内容设置不会影响视频的分发
    。
  </Note>

  媒体类型：video
</ParamField>

<ParamField body="isBrandedContent" type="boolean" default={false}>
  是否启用 <a href="https://creatormarketplace.tiktok.com/help#/doc/9493/10008169">品牌内容</a> 开关。如果将此字段设为 `true`，视频将被标记为品牌内容，表明你与品牌有付费合作。视频上会附加 "Paid partnership" 标签。

  媒体类型：video, image
</ParamField>

<ParamField body="isBrandOrganic" type="boolean" default={false}>
  是否启用品牌自然内容开关。如果将此字段设为 `true`，视频将被标记为品牌自然内容，表明你在推广自己或你的企业。视频上会附加 "Promotional content" 标签。

  媒体类型：video, image
</ParamField>

<ParamField body="imageCoverIndex" type="number" default="0">
  用作帖子封面的 `mediaUrls` 索引。

  媒体类型：image
</ParamField>

<ParamField body="title" type="string">
  帖子的标题。

  媒体类型：image
</ParamField>

<ParamField body="thumbNailOffset" type="number">
  用作视频封面的帧。

  更多信息请参见 [视频缩略图选项](/apis/post/social-networks/tiktok#video-thumbnail)。

  媒体类型：video
</ParamField>

<ParamField body="visibility" type="string" default="public">
  帖子的分享方式和可见对象。

  值：`public`、`private`、`followers` 或 `friends`。

  更多信息请参见 [可见性选项](/apis/post/social-networks/tiktok#visibility-options)。

  媒体类型：image
</ParamField>

### 可见性选项

| 可见性       | 描述               |
| :-------- | :--------------- |
| public    | 对所有 TikTok 用户可见。 |
| private   | 私有，仅账户本身可见。      |
| followers | 仅账户的关注者可见。       |
| friends   | 仅相互关注者可见。        |

私有帖子将保持在 `pending` 状态，在帖子公开之前不会发送 TikTok webhook。

## 视频缩略图

有两种方式为 TikTok 视频设置缩略图（也称为封面照片）：

1. 使用 `thumbNailOffset` 参数设置缩略图帧。
2. 使用 `thumbNail` 参数从 URL 设置缩略图图片。

仅视频支持设置缩略图。

### 缩略图偏移量

通过选择偏移帧为 TikTok 视频设置缩略图。

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

偏移量是缩略图帧在毫秒中的位置。默认值为 `0`，即视频的第一帧。

### 缩略图 URL

通过从 URL 上传图片为 TikTok 视频设置缩略图。

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

如果你使用 `thumbNail` 参数，`thumbNailOffset` 参数将被忽略。

更多信息请参见 [TikTok 缩略图要求](/media-guidelines/tiktok#video-thumbnail)。

## TikTok 提及

通过在帖子文本中添加 `@handle` 来提及其他 TikTok 用户。例如：

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

<Warning>
  请查看提及功能的[重要规则](/testing/post-verification#mentions)。
</Warning>

## TikTok 草稿帖子

为 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
  }
}
```

草稿视频或图片帖子将在 TikTok 应用底部的通知 **Inbox** 中找到。
查找 **System notifications** 消息，然后点击顶部的 **Your content from Ayrshare is ready** 消息。

Ayrshare 的 `postUrl` 将保持在 `pending` 状态，直到视频发布。草稿帖子不支持首个评论。

<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>
    在授权到期前 15 天，将发送电子邮件和 webhook 社交操作通知。
  </li>

  <li>
    可以从 [/user](/apis/user/overview) 端点检索所需的刷新日期和剩余天数。
  </li>
</ul>

## 字符限制

更多信息请参见 [TikTok 字符限制](/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/)。
