1. Requested API Scopes & Purpose

Our application operates strictly under the principle of least privilege, requesting only the exact scopes necessary for video content creation and publishing workflows:

user.info.basic

Basic User & Channel Identity

Used to authenticate the connected TikTok account, verify channel ownership, and display the official channel handle and avatar within the Studio dashboard.

user.info.profile

Creator Profile Context

Used to verify the creator's profile settings, display name, and confirm eligibility for direct video publishing.

video.upload

Direct Video Ingestion

Allows the application to upload authorized dance video files directly to TikTok's storage servers via chunked multi-part upload protocols.

video.publish

Automated Video Publishing

Empowers our editorial team to publish approved choreography videos, set custom video titles, captions, and configure privacy levels.

2. OAuth 2.0 Authorization Flow

All creator permissions are granted explicitly through TikTok's official authorization dialog. No user passwords are ever handled or stored by our servers.

// OAuth 2.0 Authorization Code Flow
1. Creator clicks "Connect TikTok" in Quang Dang Social Studio. 2. Redirect to TikTok OAuth: https://www.tiktok.com/v2/auth/authorize/ • client_key = <TIKTOK_APP_CLIENT_KEY> • scope = user.info.basic,user.info.profile,video.upload,video.publish • response_type = code • redirect_uri = https://social.quangdang.com/integrations/social/tiktok 3. Creator grants consent on TikTok's official screen. 4. TikTok redirects back with authorization code. 5. Server exchanges authorization code for access_token and refresh_token via /v2/oauth/token/. 6. Tokens are stored in AES-256 encrypted storage isolated from public networks.

3. Video Dispatch & Publishing Pipeline

When a choreography release is scheduled, our dispatch worker executes the 2-step direct posting workflow:

// Step 1: Initialize Direct Video Upload
POST https://open.tiktokapis.com/v2/post/publish/video/init/ Authorization: Bearer <ACCESS_TOKEN> Content-Type: application/json { "post_info": { "title": "Official Choreography Performance 2026 #Dance #LIFEDANCE #QuangDang", "privacy_level": "PUBLIC_TO_EVERYONE", "disable_duet": false, "disable_comment": false, "video_cover_timestamp_ms": 1000 }, "source_info": { "source": "FILE_UPLOAD", "video_size": 38491024, "chunk_size": 10000000, "total_chunk_count": 4 } }
// Step 2: Upload Video Chunks & Finalize
PUT <upload_url> Content-Range: bytes 0-9999999/38491024 Content-Type: video/mp4 [Binary Video Chunk Data]

4. Data Retention, Revocation & Compliance

Creators maintain full control over their connected accounts at all times. If a creator revokes application access in TikTok Settings, all associated access tokens, refresh tokens, and metadata are automatically pruned within 24 hours. For manual deletion requests, contact our compliance officer at hi@lifedance.vn.