A plain-English, end-to-end walkthrough of how our app uses TikTok's Login Kit + Content Posting API — including every scope, what data we store, and how a user can revoke access.
MakeAFVDO is an AI assistant for Thai affiliate marketers. A user pastes a product URL from Shopee / TikTok Shop / Lazada / AliExpress, and our pipeline:
Only two — strictly the minimum needed:
| Scope | Why we need it |
|---|---|
| user.info.basic | To show the user their own avatar + display name in our Settings page after they connect — confirms the right account is linked. |
| video.upload | To send the generated MP4 into the user's TikTok Inbox (drafts) via the Content Posting API's /post/publish/inbox/video/init/endpoint. The user then reviews and publishes it manually inside the TikTok app. |
We do not request user.info.profile, user.info.stats, video.list, or video.publish. Our app never posts publicly on the user's behalf without their manual confirmation inside TikTok.
https://www.tiktok.com/v2/auth/authorize/ requesting the two scopes above. See app/api/tiktok/connect/route.ts./api/tiktok/callback with an auth code./v2/oauth/token/ server-side with client_key + client_secret. The access token, refresh token, expiry, open_id, and granted scope are stored in a PostgreSQL row keyed by the user. We never ship these tokens to the browser./v2/post/publish/inbox/video/init/, (b) PUTs the MP4 bytes to the returned upload URL, then (c) polls /v2/post/publish/status/fetch/ until PUBLISH_COMPLETE.We do not store video analytics, follower counts, or any content from the user's existing TikTok feed. We never sell or share TikTok data with third parties.
On our /settings page there is a Disconnect button. Clicking it calls /api/tiktok/disconnect which in turn calls TikTok's /v2/oauth/revoke/ endpoint and deletes the token row from our database. The user can also revoke access directly from TikTok's Manage Apps screen at any time.
If you need a pre-loaded test account, please email support@makeafvdo.com and we'll provision a creator account for your team within 24 hours.