diff --git a/GUIDE-config-TikTok.md b/GUIDE-config-TikTok.md new file mode 100644 index 0000000..3af4531 --- /dev/null +++ b/GUIDE-config-TikTok.md @@ -0,0 +1,124 @@ +# GUIDE PAS-À-PAS — Configuration TikTok (Content Posting API) + +> TikTok a **son propre écosystème développeur**, indépendant de Meta et de Google. Il faut donc une app dédiée, +> un OAuth dédié, et — point important — un **audit de l'app** avant de pouvoir publier des vidéos **publiques**. +> +> ⚠️ Comme pour Meta, **les libellés des écrans TikTok for Developers évoluent**. Les principes ci-dessous sont stables. +> +> Ce palier (C) vient **après** Facebook/Instagram. Tu peux préparer les comptes dès maintenant, mais le développement +> du driver TikTok se fera une fois le palier B validé. Le **format vidéo 9:16 sera déjà prêt** (mutualisé avec Instagram). + +--- + +## Vue d'ensemble + +``` +1. Compte TikTok ─┐ côté réseau social +2. (recommandé) compte Business ─┘ +3. Compte TikTok for Developers ─┐ +4. Créer une app │ +5. Produit : Content Posting API │ côté développeur +6. Login Kit + scopes + redirect URI │ +7. Client Key + Client Secret → dans le plugin │ +8. Vérification du domaine (pour PULL_FROM_URL) │ +9. (pour publier public) Audit de l'app ─┘ +``` + +Les étapes 1→8 permettent de **développer et tester en Sandbox / en mode privé** (`SELF_ONLY`). +L'étape 9 est requise pour publier des vidéos **visibles publiquement**. + +--- + +## PARTIE 1 — Côté réseau social + +### Étape 1 — Compte TikTok +Crée (ou utilise) le compte TikTok qui recevra les vidéos. Active la sécurité du compte (2FA). + +### Étape 2 — Compte Business (recommandé) +Dans l'app TikTok → **Paramètres → Compte → Passer à un compte Business**. Ce n'est pas toujours strictement exigé +par l'API, mais ça débloque les statistiques et évite des limitations. Recommandé pour un usage de publication automatisée. + +--- + +## PARTIE 2 — Côté développeur + +### Étape 3 — Compte développeur +1. https://developers.tiktok.com → **Log in** avec le compte TikTok (étape 1). +2. Complète le profil développeur (email vérifié). Selon les cas, TikTok demande de rattacher l'app à une + **organisation** — renseigne le nom de l'entreprise et le site `karaokeclip.video`. + +### Étape 4 — Créer l'app +**Manage apps → Connect an app / Create an app**. Nomme-la (*KaraokeClip Publisher*), décris son usage +(*« Publier automatiquement des vidéos promotionnelles de karaoké »*), ajoute l'icône et le site web. + +### Étape 5 — Ajouter le produit « Content Posting API » +Dans l'app → **Add products → Content Posting API**. +- Choisis le mode **Direct Post** (publie directement la vidéo avec sa légende), c'est ce que le plugin utilisera. + *(L'autre mode, « Upload », dépose seulement un brouillon que l'utilisateur doit finaliser dans l'app — moins pratique ici.)* + +### Étape 6 — Login Kit, scopes et redirect URI +1. Ajoute le produit **Login Kit** (fournit l'OAuth). +2. **Scopes** à demander : + | Scope | Usage | + |---|---| + | `user.info.basic` | identité du compte connecté | + | `video.publish` | **publier une vidéo (Direct Post)** | + | `video.upload` | téléverser le fichier vidéo | +3. **Redirect URI** : ajoute **exactement** l'URL de la page de réglages du plugin (il te la donnera). Format : + ``` + https://staging2.karaokeclip.video/wp-admin/admin.php?page=kcp-settings + ``` + > Ajoute aussi l'URL de production le moment venu. Toute redirection non listée = connexion refusée. + +### Étape 7 — Récupérer Client Key + Client Secret +Dans les **Credentials / Basic information** de l'app : +- **Client Key** → réglage `tiktok_client_key` du plugin. +- **Client Secret** → réglage `tiktok_client_secret` (champ mot de passe, jamais réaffiché). + +### Étape 8 — Vérification du domaine (importante pour `PULL_FROM_URL`) +Le plugin peut livrer la vidéo à TikTok de deux façons : +- **`PULL_FROM_URL`** : TikTok télécharge la vidéo depuis une URL publique (le fichier archivé du plugin). + **Nécessite de prouver que tu possèdes le domaine** qui héberge la vidéo → dans le portail développeur, + **URL properties / Domain verification**, ajoute `karaokeclip.video` (et `staging2.karaokeclip.video` pour les tests) + et suis la procédure (fichier à déposer ou balise DNS/meta). +- **`FILE_UPLOAD`** : le plugin téléverse directement le fichier (pas de vérif de domaine, mais transfert plus lourd). + +> Recommandation : vérifie le domaine (peu coûteux) pour pouvoir utiliser `PULL_FROM_URL`, plus léger côté serveur. +> Le plugin gérera un repli `FILE_UPLOAD` si besoin. + +--- + +## PARTIE 3 — Développement, Sandbox et audit + +### Mode Sandbox (test sans audit) +TikTok fournit un **environnement Sandbox** avec des **utilisateurs de test** : tu peux valider tout le flux +(connexion → init → upload → publication) **sans audit**. Les vidéos publiées via une app non auditée sont +restreintes — typiquement visibles **par toi seul** (`privacy_level = SELF_ONLY`). C'est suffisant pour valider le palier C. + +### Étape 9 — Audit de l'app (pour publier public) +Pour que les vidéos soient **visibles publiquement**, l'app doit passer l'**audit TikTok** : +- description claire de l'usage, respect des règles de contenu (mentions, musique, etc.), +- souvent une **vidéo de démonstration** du parcours, +- politique de confidentialité et conditions publiques (mêmes documents que pour Meta). + +> Comme pour Meta, l'audit ne bloque pas le développement : on code et on teste en Sandbox / `SELF_ONLY`, +> et on bascule `privacy_level` en public une fois l'app auditée. + +--- + +## Contraintes vidéo TikTok (déjà prises en compte par le profil 9:16) + +- **Format** : vertical **9:16** recommandé (le profil `portrait` du plugin, mutualisé avec Instagram). +- **Conteneur** : MP4 (H.264/AAC) — c'est déjà ce que produit FFmpeg. +- **Durée** : le profil portrait est plafonné (≤ 90 s côté IG) ; TikTok accepte plus long, mais on reste sur le rendu commun. +- **Légende** : caption unique (titre + description + hashtags fusionnés), comme Instagram. + +--- + +## Récapitulatif « ce que tu me fourniras » (au palier C) + +- **Client Key** + **Client Secret** (collés dans le plugin). +- Confirmation que le **domaine est vérifié** dans le portail (si on part sur `PULL_FROM_URL`). +- Le compte TikTok cible connecté via le bouton « Se connecter à TikTok » du plugin. + +*Fin du guide TikTok.*