Aller au contenu
Influence
Esc
↑↓naviguer↵ouvrir⌘Japerçu
Sur cette page

API HTTP

Authentifiez-vous, découvrez les outils et confirmez des modifications avec l’API HTTP existante.

Envoyez les requêtes à l’origine Influence de confiance, par exemple https://influence.so. Le domaine de documentation n’accepte pas les requêtes de l’API du produit. Utilisez les chemins exacts ci-dessous, sans paramètres de requête.

Créez une clé aux permissions limitées

Dans les paramètres d’Influence, ouvrez Applications et automatisations → Clés API. Choisissez les permissions nécessaires et une expiration. La clé n’est affichée qu’une fois : conservez-la dans votre gestionnaire de secrets sous PUBLISH_API_TOKEN. Transmettez-la dans Authorization: Bearer …, jamais dans une URL, un corps de requête ou un chat. Révoquez-la lorsque vous n’en avez plus besoin.

Découvrez les outils et consultez des données

Définissez PUBLISH_API_URL sur l’origine de confiance. Ces exemples supposent que le processus dispose déjà de PUBLISH_API_TOKEN. accountList nécessite integrations:read ; suivez les champs de pagination pour lire les pages suivantes.

export PUBLISH_API_URL="https://influence.so"
curl "$PUBLISH_API_URL/api/v1/tools" \
  -H "Authorization: Bearer $PUBLISH_API_TOKEN"

curl "$PUBLISH_API_URL/api/v1/tools/accountList/call" \
  -H "Authorization: Bearer $PUBLISH_API_TOKEN" \
  -H 'Content-Type: application/json' \
  --data '{"input":{}}'

Chemins des requêtes

Méthode Chemin Rôle
GET /api/v1/tools Liste les outils accessibles avec cet identifiant.
POST /api/v1/tools/{tool}/call Appelle un outil en lecture seule.
POST /api/v1/tools/{tool}/prepare Prépare une modification précise sans l’exécuter.
POST /api/v1/tools/{tool}/confirm Confirme la modification préparée.
POST /api/v1/media/import Confirme l’envoi préparé d’une petite image binaire.

Les requêtes JSON utilisent Content-Type: application/json et un corps contenant uniquement input : {"input":{…}}. Le catalogue actuel fournit le schéma d’entrée de chaque outil.

Préparez et confirmez les modifications

  1. Envoyez les données exactes à /prepare. La réponse attendue contient status: "confirmation_required", confirmationCapability, expiresAt, inputDigest et éventuellement summary.
  2. Avant l’expiration, envoyez les mêmes données à /confirm. Placez la valeur reçue dans X-Publish-Confirmation et une nouvelle clé générée par votre client dans Idempotency-Key.
  3. Conservez ensemble les données, la valeur de confirmation et la clé. Après une interruption ou un résultat incertain, réutilisez les trois pour cette même requête. Ne préparez pas une nouvelle opération pour récupérer un résultat incertain.

La clé d’idempotence contient 16 à 200 caractères parmi A–Z, a–z, 0–9, ., _, : et -. Les valeurs de confirmation sont des secrets opaques. Une clé envoyée à /call ou /prepare ne réserve pas une modification confirmée.

La confirmation de la requête est distincte de l’approbation de publication. Pour publier ou modifier une programmation, créez et présentez la validation complète et actuelle. Un texte nécessite une nouvelle approbation après cette présentation. Les images et vidéos exigent l’approbation visuelle de la personne dans une interface compatible ou dans Influence après connexion. Préparer une validation ne publie rien. Consultez le résultat enregistré avant de continuer ; needs_review exige de vérifier ce qui s’est passé, pas de renvoyer.

Gérez les erreurs et les résultats incertains

Vérifiez le statut HTTP et le corps. Un succès renvoie {"ok":true,"toolName":"…","output":{…}}. Un échec d’outil renvoie {"ok":false,"toolName":"…","error":{"code":"…","message":"…","retryable":false}}, parfois avec HTTP 200. Un échec de transport utilise {"error":{"code":"…","message":"…","retryable":false}}, sans ok ni toolName.

Un 401 exige une authentification : vérifiez l’expiration ou la révocation. Une permission manquante nécessite l’autorisation correspondante, pas des requêtes répétées. Un 503 indique que l’API est indisponible dans cet environnement. Respectez les erreurs et les consignes de nouvelle tentative. Un délai dépassé ne prouve pas l’échec d’une modification : conservez ses données de confirmation et consultez l’état avant de renvoyer. Accepté, programmé et publié sont des résultats distincts.

Envoyez des médias

Pour les fichiers locaux, privilégiez uploadMedia du SDK ou media:upload de la CLI. Ils utilisent les mêmes outils d’envoi en plusieurs parties et gardent un clientKey stable pour les reprises. Seul un résultat prêt avec assetId peut être joint. Pour une référence HTTPS autorisée, utilisez mediaImport ; un chemin local n’est pas une URL de téléchargement.

POST /api/v1/media/import prend en charge le transport existant des petites images : préparez mediaImport avec le descripteur exact, puis envoyez les mêmes octets en application/octet-stream. Incluez X-Publish-Confirmation, Idempotency-Key et X-Publish-Upload avec le descripteur JSON encodé pour une URI. Les octets doivent correspondre à sa taille et à son SHA-256. La limite est de 3 MiB ; utilisez l’assistant d’envoi pour les fichiers plus grands pris en charge. Envoyer un fichier n’approuve jamais sa publication.

Consultez la référence de l’API ou téléchargez la spécification OpenAPI.