Instagram avec 1Social
1Social publie sur le compte Instagram de l'utilisateur et rapporte ce qui a réellement été diffusé.
Configuration (une fois)
Ces étapes pilotent le serveur MCP 1Social. Si des outils comme list_accounts ne sont pas disponibles, connectez-le d'abord. La connexion se fait par OAuth dans le navigateur ; il n'y a pas de clé API à stocker. Demandez à l'utilisateur avant d'exécuter ces commandes — l'étape de connexion ouvre une page où il se connecte lui-même à 1Social.
- OpenClaw :
openclaw mcp set 1social '{"url":"https://mcp.1social.dev/mcp","transport":"streamable-http","auth":"oauth"}', puisopenclaw mcp login 1social. Vérifiez avecopenclaw mcp doctor 1social --probe. - Hermes : ajoutez dans
~/.hermes/config.yaml:puismcp_servers: 1social: url: "https://mcp.1social.dev/mcp" auth: oauthhermes mcp login 1social(sur un hôte sans écran :hermes mcp login 1social --flow device). - Claude Code :
claude mcp add --transport http 1social https://mcp.1social.dev/mcp - Tout autre client : https://1social.dev/mcp liste la configuration pour chacun.
L'utilisateur a besoin d'un compte 1Social. Les nouveaux comptes commencent avec un essai gratuit ; la publication après l'essai nécessite un plan payant (https://1social.dev/pricing).
Workflow
- Trouver le compte. Appelez
list_accounts. Cela renvoie les canaux connectés avec leurs identifiants, les limites en direct de chaque réseau, le plan et le quota mensuel restant. Si aucun compte Instagram n'est connecté, dites à l'utilisateur d'en connecter un sur https://1social.dev/app — la connexion nécessite un navigateur et ne peut pas être faite depuis le chat. Silist_accountssignale une limite différente de celle de cette compétence, faites confiance àlist_accounts. - Rédiger pour le réseau. Rédigez la publication selon les règles ci-dessous. Une publication est une liste de
segments; chaque segment est{ text, mediaIds? }. - Attacher des médias.
- L'utilisateur a attaché un fichier dans le chat → mettez-le dans
media. - Vous avez un lien https public → mettez-le dans
mediaUrls. - Vous avez seulement un fichier sur le disque (OpenClaw, Hermes, Claude Code, Codex ou un autre agent CLI) → appelez
upload_mediaet suivez les étapes de téléchargement que sa description donne, puis mettez lepublicUrlretourné dansmediaUrls. Une URL localhost ne fonctionne jamais. Avant cela, montrez à l'utilisateur exactement quels fichiers vous allez télécharger et attendez un oui : un téléchargement obtient un lien public immédiatement, et refuser la publication après ne supprime pas le fichier.
- L'utilisateur a attaché un fichier dans le chat → mettez-le dans
- Prévisualiser. Appelez
preview_postavec les identifiants de canal et le brouillon. C'est gratuit et ne publie rien. Corrigez chaque problème signalé et prévisualisez à nouveau. - Confirmer avec l'utilisateur. Montrez le texte final, le compte de destination, les médias et quand la publication sera diffusée. La publication est publique et certains réseaux ne peuvent pas annuler une publication, alors attendez un oui clair.
- Publier ou planifier. Appelez
publish_post.scheduledAt: nullpublie maintenant ; un horodatage UTC ISO-8601 comme2026-11-03T07:00:00Zplanifie (dans le futur, au maximum 30 jours à l'avance). Convertissez vous-même l'heure locale de l'utilisateur en UTC, et s'il nomme une heure sans fuseau horaire, demandez lequel. Définissez unidempotencyKey(une chaîne stable de 8 à 128 caractères pour ce brouillon) afin qu'un appel répété ne puisse pas publier deux fois. - Rapporter honnêtement. Le résultat est un reçu par réseau. Rapportez chaque réseau exactement comme retourné.
unknownsignifie que 1Social n'a pas pu déterminer si la publication a été diffusée — dites-le, ne l'appelez jamais un succès ou un échec.
Règles Instagram
- Chaque publication a besoin d'une image ou d'une vidéo. Une légende seule est rejetée — demandez un média à l'utilisateur avant de rédiger.
- Limite de légende : 2 200 caractères. Jusqu'à 30 hashtags ; 3 à 5 pertinents fonctionnent généralement mieux qu'un mur de tags.
- Le rapport hauteur/largeur de l'image doit être entre 4:5 (portrait) et 1.91:1 (paysage). Le carré 1:1 est sûr. Les bannières larges sont rejetées par Instagram avec une erreur de "rapport hauteur/largeur".
- PNG et JPEG fonctionnent tous les deux.
- Pas de fils : si le brouillon a plusieurs segments, 1Social les fusionne en une seule légende. Écrivez une seule légende à la place.
- Les liens dans les légendes ne sont pas cliquables sur Instagram. Si l'utilisateur veut du trafic, suggérez plutôt le libellé "lien dans la bio" au lieu d'une URL brute.
- Une publication Instagram publiée ne peut pas être supprimée via 1Social — Instagram n'a pas d'API de suppression pour cela. Assurez-vous que l'utilisateur est satisfait de la légende avant de publier.
Conseils de rédaction
- Commencez par un accroche dans les 125 premiers caractères — c'est ce qui s'affiche avant "plus".
- Mettez les hashtags à la fin de la légende, après un saut de ligne.
Publier également sur d'autres réseaux
Le même compte 1Social peut publier une seule publication sur Instagram, TikTok, LinkedIn, X, Threads, Facebook Pages, YouTube Shorts et Bluesky en même temps : listez plusieurs identifiants de canaux depuis list_accounts. preview_post vérifie le brouillon contre chaque réseau sélectionné.
Après la publication
- Vérifier le statut :
list_posts(donnez unpostIdpour une publication). Il inclut les métriques d'engagement stockées lorsque le réseau les fournit. - Modifier une publication planifiée :
update_post. Fonctionne uniquement avant que la publication ne soit diffusée. - Annuler la planification :
cancel_post. Utilisez ceci, pasdelete_post, pour une publication qui n'a pas encore été publiée. - Supprimer une publication publiée :
delete_post, uniquement après confirmation de l'utilisateur. Rapportez par réseau ce qui a réellement été retiré : les publications Instagram, TikTok, Threads et YouTube restent en ligne et seul l'utilisateur peut les supprimer. - Une livraison a échoué :
retry_deliveryréessaie un réseau et consomme à nouveau du quota. Il est refusé pour les échecs permanents comme une connexion révoquée — l'utilisateur doit alors se reconnecter sur https://1social.dev/app. - Une livraison est
unknown: demandez à l'utilisateur de vérifier sur le réseau. Ce n'est que lorsque l'utilisateur vous dit si la publication est en ligne que vous appelezconfirm_deliveryavec sa réponse. Ne devinez jamais, et ne faites jamaisretry_deliveryavecforcesans demander — cela pourrait publier un deuxième exemplaire.