Formations
Mini-formation · outil rs.pix-up.com
Clés API des réseaux sociaux
Pour publier sur Facebook, Instagram, TikTok, Pinterest et X, rs a besoin d'une app développeur par plateforme : un identifiant, un secret et une URL de rappel. Ce pas-à-pas détaille chaque écran, les valeurs exactes à coller et les erreurs qui font perdre une après-midi. L'outil « Clés API réseaux » de NEO reprend les mêmes étapes en liste à cocher.
Le principe : une app par plateforme
Chaque réseau délivre l'accès à un compte par OAuth : rs redirige vers le réseau, tu acceptes, le réseau renvoie vers l'URL de rappel de rs avec un code, que rs échange contre un jeton d'accès (chiffré en base, renouvelé seul). Pour cela, le réseau doit connaître rs : c'est l'app développeur, identifiée par un ID (public) et un secret (à garder pour soi).
Clés d'app dans le .env de rs → chaque compte se connecte en un clic, jetons renouvelés automatiquement.
Jeton utilisateur recopié dans un workflow (AFP-04) → expiré au bout de quelques semaines, publication cassée sans prévenir.
App ID / Client key
App secret
Callback
Les pages légales exigées partout
| Page | URL |
|---|---|
| Politique de confidentialité | https://rs.pix-up.com/confidentialite |
| Conditions d'utilisation | https://rs.pix-up.com/conditions |
| Suppression des données | https://rs.pix-up.com/suppression-donnees |
Créer les 4 apps, coller les clés, connecter les comptes en mode test.
Validations : App Review Meta, audit TikTok, accès Standard Pinterest.
Publication publique ; ne rien toucher sauf secret régénéré.
Pour vérifier
Que renvoie le réseau à l'URL de rappel de rs ?
Meta
| Élément | Valeur |
|---|---|
| Console | https://developers.facebook.com/apps |
| Durée | 20 à 30 min |
| Coût | Gratuit. |
| URL de rappel (callback) | https://rs.pix-up.com/api/v1/oauth/meta/callback |
| Autorisations demandées | pages_show_list, pages_read_engagement, pages_manage_posts, business_management, instagram_basic, instagram_content_publish |
Avant de commencer
- Un compte Facebook personnel administrateur de la Page à publier.
- Le compte Instagram passé en compte professionnel (Entreprise ou Créateur) et relié à la Page (Instagram → Paramètres → Compte professionnel → Page connectée, ou Meta Business Suite → Paramètres → Comptes Instagram).
- De préférence un portefeuille business (business.facebook.com) qui possède la Page.
- Les pages légales publiques de rs (confidentialité, conditions, suppression des données).
Pas à pas
1. Activer le compte développeur — Sur developers.facebook.com, Commencer puis valider le compte (téléphone ou carte demandés une seule fois). Utiliser le compte Facebook admin de la Page.
2. Créer l'app — Mes apps → Créer une app. Nom : rs Pix-Up ; e-mail : celui de contact. Cas d'usage : Gérer tout sur votre Page puis ajouter Gérer les messages et le contenu sur Instagram (si l'assistant propose un type, choisir Entreprise). Relier l'app au portefeuille business qui possède la Page.
Nom de l'app : rs Pix-Up
3. Paramètres de base (identité + pages légales) — Paramètres de l'app → Général : renseigner les champs ci-dessous, une icône 1024×1024, la catégorie Entreprise et pages, puis Enregistrer les modifications.
Domaines de l'app : rs.pix-up.com URL de la politique de confidentialité : https://rs.pix-up.com/confidentialite URL des conditions de service : https://rs.pix-up.com/conditions Suppression des données (URL des instructions) : https://rs.pix-up.com/suppression-donnees
4. Configurer la connexion (Facebook Login) — Produit Facebook Login (ou Facebook Login for Business) → Paramètres : Connexion OAuth cliente Oui, Connexion OAuth Web Oui, Forcer HTTPS Oui, et coller l'URI de redirection. Enregistrer.
URI de redirection OAuth valide : https://rs.pix-up.com/api/v1/oauth/meta/callback
5. Ajouter les autorisations — Dans les cas d'usage → Personnaliser : ajouter chaque autorisation de la liste. En mode Développement, elles fonctionnent tout de suite pour les personnes qui ont un rôle sur l'app (Admin, Développeur, Testeur) — c'est le cas de Julien, donc pas d'App Review nécessaire pour publier sur nos propres Pages.
Autorisations : pages_show_list,pages_read_engagement,pages_manage_posts,business_management,instagram_basic,instagram_content_publish
6. Seulement pour une app Entreprise : créer la configuration — Facebook Login for Business → Configurations → Créer : type Jeton d'accès utilisateur, cocher les autorisations ci-dessus, actifs Pages et Comptes Instagram. Copier l'ID de configuration → RS_META_CONFIG_ID. (App classique sans ce produit : laisser vide.)
7. Copier les clés — Paramètres de l'app → Général : ID de l'app → RS_META_APP_ID ; Clé secrète (bouton Afficher, mot de passe Facebook redemandé) → RS_META_APP_SECRET.
8. Connecter dans rs — Après report des clés sur le VPS : rs → Comptes → Facebook ou Instagram → Connecter. Cocher la Page et le compte Instagram dans la fenêtre Meta : rs crée un compte Facebook par Page et un compte Instagram par compte pro relié.
Clés à reporter
| Variable | Où la trouver |
|---|---|
RS_META_APP_ID | ID de l'app (Paramètres de l'app → Général) |
RS_META_APP_SECRET | Clé secrète de l'app (bouton Afficher) |
RS_META_CONFIG_ID | ID de configuration Facebook Login for Business (app de type Entreprise uniquement) (facultatif) |
Validation par Meta
Mode Développement = publication possible pour les comptes ayant un rôle sur l'app (suffisant pour nos Pages). Pour des clients externes : passer l'app en Live, vérification de l'entreprise (Kbis/avis SIRENE) et App Review des autorisations avec une vidéo de démonstration (compter 1 à 4 semaines).
RS_META_CONFIG_ID.Pour vérifier
Quel type d'app Meta faut-il créer pour publier sur une Page et un compte Instagram pro ?
Pourquoi ne pas recopier un jeton utilisateur dans n8n comme AFP-04 ?
TikTok
| Élément | Valeur |
|---|---|
| Console | https://developers.tiktok.com/apps |
| Durée | 30 min + validation du domaine |
| Coût | Gratuit. |
| URL de rappel (callback) | https://rs.pix-up.com/api/v1/oauth/tiktok/callback |
| Autorisations demandées | user.info.basic, video.publish, video.upload |
Avant de commencer
- Un compte TikTok (celui qui publiera) — de préférence compte Business ou Créateur.
- Accès à la zone DNS Cloudflare de pix-up.com (vérification du domaine rs.pix-up.com).
- Les pages légales publiques de rs.
Pas à pas
1. Créer le compte développeur — developers.tiktok.com → Log in avec le compte TikTok, accepter les conditions développeur. Créer une organisation (Pix-Up) si proposé : l'app lui appartient, pas à une personne.
2. Créer l'app — Manage apps → Connect an app (ou Create app). Renseigner icône, nom, catégorie, description (« Outil interne Pix-Up de publication planifiée sur nos comptes »), plateforme Web, et les URL ci-dessous.
Nom de l'app : rs Pix-Up Website URL : https://rs.pix-up.com Terms of Service URL : https://rs.pix-up.com/conditions Privacy Policy URL : https://rs.pix-up.com/confidentialite
3. Ajouter Login Kit + Content Posting API — Add products : Login Kit et Content Posting API. Dans Content Posting API, activer Direct Post (publication directe, pas seulement brouillon dans l'appli).
4. Cocher les scopes — Onglet Scopes : ajouter les trois scopes de la liste.
Scopes : user.info.basic,video.publish,video.upload
5. Déclarer l'URL de redirection — Login Kit → Redirect URI (Web) : coller l'URL de rappel exacte.
Redirect URI : https://rs.pix-up.com/api/v1/oauth/tiktok/callback
6. Vérifier le domaine des médias — TikTok télécharge photos et vidéos depuis rs (PULL_FROM_URL) : seul un domaine vérifié est accepté. Content Posting API → Verify domains / URL properties → Add rs.pix-up.com, choisir la vérification DNS et copier la valeur TXT proposée. Dans Cloudflare (zone pix-up.com) : DNS → Ajouter un enregistrement de type TXT, nom rs, contenu = la valeur TikTok. Revenir cliquer Verify.
Domaine à vérifier : rs.pix-up.com Préfixe d'URL des médias : https://rs.pix-up.com/api/v1/public/media/
7. Sandbox : ajouter le compte de test — Onglet Sandbox → Create sandbox, puis Target users : ajouter le compte TikTok qui publiera. Tant que l'app n'est pas auditée, seuls ces comptes peuvent se connecter et les posts sont privés (SELF_ONLY).
8. Copier les clés — Onglet Credentials (en haut de la page de l'app) : Client key → RS_TIKTOK_CLIENT_KEY, Client secret → RS_TIKTOK_CLIENT_SECRET.
9. Demander l'audit (publication publique) — Submit for review : expliquer l'usage (publication de nos carrousels design), joindre une vidéo de démonstration de rs (connexion TikTok → composeur → publication). Après audit, passer RS_TIKTOK_DEFAULT_PRIVACY=PUBLIC_TO_EVERYONE.
Clés à reporter
| Variable | Où la trouver |
|---|---|
RS_TIKTOK_CLIENT_KEY | Client key (onglet Credentials de l'app) |
RS_TIKTOK_CLIENT_SECRET | Client secret |
RS_TIKTOK_DEFAULT_PRIVACY | SELF_ONLY tant que l'app n'est pas auditée (facultatif) |
Validation par TikTok
Sans audit : publication privée uniquement (SELF_ONLY), comptes de la sandbox seulement, quota journalier réduit. L'audit du Content Posting API demande une vidéo de démo et prend en général 1 à 3 semaines.
Pour vérifier
Tant que l'app TikTok n'est pas auditée, les vidéos publiées sont…
Que faut-il vérifier pour que TikTok aille chercher les médias sur rs ?
| Élément | Valeur |
|---|---|
| Console | https://developers.pinterest.com/apps/ |
| Durée | 15 min + accès Standard |
| Coût | Gratuit. |
| URL de rappel (callback) | https://rs.pix-up.com/api/v1/oauth/pinterest/callback |
| Autorisations demandées | boards:read, boards:write, pins:read, pins:write, user_accounts:read |
Avant de commencer
- Un compte Pinterest professionnel (Business) — conversion gratuite dans les paramètres du compte.
- Au moins un tableau sur le compte.
- Les pages légales publiques de rs.
Pas à pas
1. Créer l'app — developers.pinterest.com → My apps → Connect app avec le compte Business. Remplir nom, description, site web et usage (« publication planifiée de nos contenus »), accepter les conditions.
Nom de l'app : rs Pix-Up Site web : https://rs.pix-up.com Politique de confidentialité : https://rs.pix-up.com/confidentialite
2. Déclarer l'URI de redirection — Page de l'app → Configure → Redirect URIs → Add : coller l'URL de rappel, puis Save.
Redirect URI : https://rs.pix-up.com/api/v1/oauth/pinterest/callback
3. Copier les clés — App ID → RS_PINTEREST_APP_ID ; App secret key (bouton Show) → RS_PINTEREST_APP_SECRET.
4. Accès Trial : mode sandbox de rs — Une app neuve a l'accès Trial : les Pins vont dans la sandbox (invisibles du public). Console → Generate token en environnement Sandbox (droits pins:write, boards:write) → RS_PINTEREST_SANDBOX_TOKEN dans le .env rs du VPS, puis recréer rs-api, rs-worker et rs-scheduler. Tableaux, Pins et médias passent alors par api-sandbox avec ce jeton ; l'OAuth et le profil restent en production. Les jetons sont propres à leur environnement (prod ≠ sandbox → 401 croisé).
Variable : RS_PINTEREST_SANDBOX_TOKEN
5. Connecter le compte dans rs (OAuth) — rs → Comptes (/accounts) → carte Pinterest → bouton en haut à droite de la carte : Connecter (ou Reconnecter si un compte existe déjà). Pinterest affiche l'écran de consentement avec les droits demandés → Autoriser → retour sur /api/v1/oauth/pinterest/callback puis /accounts, compte listé. Bouton grisé = clés RS_PINTEREST_APP_ID/SECRET non lues par l'API. Choisir ensuite le tableau par défaut du compte : c'est lui qui reçoit les Pins.
6. Préparer la vidéo de démo — Une seule prise d'écran de 2 à 4 min, sans coupure entre l'OAuth et la publication, navigateur plein écran barre d'adresse visible (Pinterest vérifie le domaine), sous-titres ou voix en anglais. Avant : vérifier la Redirect URI exacte dans la console, supprimer les tableaux démo en double en sandbox, et supprimer le compte déjà connecté (poubelle de sa ligne) pour que le bouton redevienne « Connecter » et que la vidéo montre une vraie première connexion. La liste des tableaux sandbox peut rester vide ~20 s : recharger juste avant la prise.
7. Tourner la vidéo — 1. Ouvrir rs.pix-up.com et se connecter (« rs: Pix'Up tool to schedule and publish our own content to our Pinterest Business account »). 2. /accounts → Pinterest → Connecter → montrer l'écran de consentement et ses droits (boards:read/write, pins:read/write, user_accounts:read) → Autoriser → compte listé. 3. Montrer les tableaux synchronisés et le tableau par défaut. 4. Nouveau post : image (2:3), titre, description, lien → cocher le compte Pinterest → Publier maintenant. 5. Montrer le statut Publié et l'identifiant du Pin renvoyé (en sandbox le Pin n'apparaît pas sur pinterest.com : c'est accepté). 6. Option : déconnexion du compte, pages /confidentialite et /suppression-donnees.
8. Demander l'accès Standard — Mettre la vidéo en ligne (YouTube non répertorié ou Drive) → page de l'app → Upgrade access → joindre le lien. Cas d'usage : « Publish our own brand content (Pix'Up) to our Business account; no third-party user data. »
Cas d'usage : Publish our own brand content (Pix'Up) to our Business account; no third-party user data.
9. Après l'accès Standard — Retirer RS_PINTEREST_SANDBOX_TOKEN (et RS_PINTEREST_API_BASE s'il pointe sur la sandbox) du .env du VPS, recréer rs-api, rs-worker et rs-scheduler, refaire l'OAuth depuis /accounts (bouton Reconnecter) puis resynchroniser les tableaux.
Clés à reporter
| Variable | Où la trouver |
|---|---|
RS_PINTEREST_APP_ID | App ID |
RS_PINTEREST_APP_SECRET | App secret key (bouton Show) |
RS_PINTEREST_API_BASE | Laisser vide (production) ; la sandbox passe par RS_PINTEREST_SANDBOX_TOKEN (facultatif) |
RS_PINTEREST_SANDBOX_TOKEN | Jeton Sandbox (pins:write, boards:write) tant que l'accès est « Trial » — à retirer après l'accès Standard (facultatif) |
Validation par Pinterest
Trial = sandbox uniquement (Pins non publics). Standard = production, après revue avec vidéo (quelques jours à 2 semaines).
RS_PINTEREST_SANDBOX_TOKEN ; Standard : le retirer, puis reconnecter.pins:write).Pour vérifier
En accès « Trial », où partent les épingles ?
X (Twitter)
| Élément | Valeur |
|---|---|
| Console | https://developer.x.com/en/portal/dashboard |
| Durée | 15 min |
| Coût | Gratuit pour un faible volume, payant au-delà (voir la page Billing du portail). |
| URL de rappel (callback) | https://rs.pix-up.com/api/v1/oauth/x/callback |
| Autorisations demandées | tweet.read, tweet.write, users.read, media.write, offline.access |
Avant de commencer
- Le compte X qui publiera (connecté dans le navigateur).
- Un moyen de paiement si le quota gratuit ne suffit pas (l'API X est payante au-delà).
Pas à pas
1. Ouvrir le portail développeur — developer.x.com → Developer Portal → s'inscrire (décrire l'usage en quelques phrases : publication des contenus de Pix-Up sur notre compte). Un Project et une App sont créés.
2. Choisir l'offre — Vérifier sur Products / Billing l'offre en cours : le niveau gratuit permet un petit nombre de posts par mois, les niveaux payants (Basic, Pro ou paiement à l'usage) augmentent le quota. Les tarifs changent souvent : se fier à la page du portail le jour de l'inscription.
3. Paramétrer l'authentification utilisateur — App → Settings → User authentication settings → Set up : App permissions Read and write, Type of App Web App, Automated App or Bot (client confidentiel), puis les URL ci-dessous. Save.
Callback URI / Redirect URL : https://rs.pix-up.com/api/v1/oauth/x/callback Website URL : https://rs.pix-up.com Terms of service : https://rs.pix-up.com/conditions Privacy policy : https://rs.pix-up.com/confidentialite
4. Copier les clés OAuth 2.0 — À la sauvegarde, X affiche une seule fois le Client ID → RS_X_CLIENT_ID et le Client Secret → RS_X_CLIENT_SECRET. Perdu ? Keys and tokens → OAuth 2.0 Client ID and Client Secret → Regenerate. Ne pas confondre avec API Key / Secret (OAuth 1.0a) ni Bearer Token : rs ne les utilise pas.
5. Connecter dans rs — rs → Comptes → X → Connecter : autoriser l'app sur x.com. Le jeton (2 h) est renouvelé automatiquement grâce au scope offline.access.
Clés à reporter
| Variable | Où la trouver |
|---|---|
RS_X_CLIENT_ID | OAuth 2.0 Client ID |
RS_X_CLIENT_SECRET | OAuth 2.0 Client Secret (affiché une seule fois) |
Validation par X (Twitter)
Pas de revue : l'app est utilisable dès sa création, dans la limite du quota de l'offre.
Pour vérifier
Quel réglage oublié empêche de tweeter (403) ?
Le Client Secret OAuth 2.0 de X…
Brancher les clés dans rs
1. Noter les clés dans le .env global — Fichier OLYMPUS/.env, section # --- rs --- : coller chaque valeur après le =. Ce fichier est la source unique des secrets (jamais commité).
2. Reporter sur le VPS et redémarrer rs — Demander à Claude « reporte les clés rs sur le VPS » : il copie les valeurs dans ~/apps/rs.pix-up.com/apps/rs/api/.env puis relance rs-api, rs-scheduler et rs-worker. L'onglet Comptes de rs affiche alors Connecter au lieu de « clés absentes ».
# --- rs --- RS_META_APP_ID= RS_META_APP_SECRET= RS_META_CONFIG_ID= RS_TIKTOK_CLIENT_KEY= RS_TIKTOK_CLIENT_SECRET= RS_TIKTOK_DEFAULT_PRIVACY= RS_PINTEREST_APP_ID= RS_PINTEREST_APP_SECRET= RS_PINTEREST_API_BASE= RS_PINTEREST_SANDBOX_TOKEN= RS_X_CLIENT_ID= RS_X_CLIENT_SECRET=
- Les secrets ne vont que dans le
.envglobal d'OLYMPUS et le.envde rs sur le VPS : jamais dans git, un ticket, une capture ou un message. - Un secret régénéré dans une console invalide l'ancien : mettre à jour le
.envdu VPS puis redémarrer rs-api, rs-worker et rs-scheduler. - Après connexion, rs → Comptes affiche l'expiration de chaque jeton : un compte en rouge se reconnecte d'un clic.