Aller au contenu

Gestion du compte, des équipes et des SNS

Procédures OAuth v2

Connectez-vous via OAuth utilisateur. Une connexion OAuth sélectionne votre session, tandis que --brand sélectionne la cible du travail. Les autorisations utilisateur existantes s’appliquent à chaque requête. Les clés API ne permettent pas d’authentifier les nouveaux parcours v2. Utilisez le même environnement tout au long d’un parcours et sélectionnez explicitement une marque accessible.

Fenêtre de terminal
ankk --json user get --environment preview --connection OAUTH_CONNECTION_ID
ankk --json brands list --environment preview --connection OAUTH_CONNECTION_ID --all
ankk --json brands dashboard --environment preview --connection OAUTH_CONNECTION_ID --brand BRAND_ID

Remplacez les identifiants en majuscules par les ID qui vous ont été retournés. user update --name modifie le nom de l’utilisateur actuel. brands check-slug vérifie un slug proposé ; brands create exige une clé d’idempotence et ne sélectionne pas la nouvelle marque. Pour préparer un logo, utilisez brands create-logo-upload, terminez le transfert et l’inspection du média, puis lancez explicitement brands set-logo. brands remove-logo supprime l’association, pas les fichiers stockés. Les modifications de logo nécessitent les droits owner/admin actuels.

Utilisez brands list-members, list-invitations et member-limit avant toute modification. Les offres gratuites conservent la limite d’un membre ; la limite actuelle des offres payantes est de 100. brands create-invitation retourne un lien sans envoyer d’e-mail. Ne le partagez que par un canal autorisé. get-invitation, accept-invitation et reject-invitation utilisent l’identité actuelle du destinataire prévu. L’acceptation vérifie de nouveau les autorisations et la capacité ; un lien ne confère pas à lui seul le statut de membre.

brands update-member-role, remove-member et cancel-invitation nécessitent les autorisations de gestion actuelles. Les rôles en entrée sont admin ou member ; la protection du dernier propriétaire reste appliquée. Les ID de membre, d’invitation et d’utilisateur sont distincts. Consultez le --help de chaque commande avant de préparer une modification.

Authentifiez-vous avec le compte destinataire. Utilisez les identifiants de marque et d’invitation correspondants ; ne les remplacez pas par un identifiant de membre ou une autre marque. Cette consultation n’accepte pas l’invitation et n’ajoute aucun membre. Vérifiez le rôle et le statut avant de décider séparément de l’accepter.

Fenêtre de terminal
ankk --json brands get-invitation --brand BRAND_ID --invitation INVITATION_ID --environment preview --connection OAUTH_CONNECTION_ID

Consultez d’abord connections list/get et les capacités actuelles. connect, reauthorize et transfer préparent un parcours dans le navigateur ; une URL retournée ne signifie pas que l’opération est terminée. Utilisez le --sns-type demandé ; un transfert nécessite aussi --source-brand et les droits actuels sur la source et la destination. Ouvrez l’URL ANKK en tant qu’utilisateur prévu, puis consultez l’opération retournée. Ne déduisez pas une réussite de la fermeture d’un onglet ou de l’expiration d’une URL.

connections refresh, disconnect et dismiss retournent également des opérations. Examinez leurs effets avant l’envoi. update-language --language <code> modifie la langue de la connexion ; inherit rétablit celle de la marque par défaut. Révoquer une connexion OAuth et déconnecter SNS sont deux actions distinctes. Aucune n’ajoute de capacité payante. Conservez la même clé d’idempotence pour une même requête dont le résultat est incertain.

dismiss met fin à une connexion SNS nécessitant une reconnexion ; cette commande ne masque pas simplement un avis. disconnect et dismiss suppriment la connexion ANKK et ses identifiants enregistrés. Le même ID de connexion ne peut pas être restauré. La suppression du compte SNS externe est une opération distincte. Après un transfert ou une nouvelle connexion, les anciennes données privées peuvent devenir illisibles depuis la nouvelle connexion, même si les enregistrements originaux restent présents. Vérifiez cet effet avant de poursuivre ; conserver les enregistrements ne garantit pas le maintien de leur accès.

Utilisez connections get-language <connection_id> --brand <brand_id> pour lire la langue enregistrée pour la connexion. La réponse contient id et language ; null indique l’absence de langue propre à la connexion. Il ne s’agit pas de la langue effective calculée. Les réponses existantes de connections list/get ne contiennent pas ce champ.

CLI 0.6.0 prend en charge publishing options uniquement pour TikTok. Le Worker du fournisseur lit les réglages des commentaires, duet et stitch ainsi que la durée maximale des vidéos. Cette lecture appelle le fournisseur et consomme du quota ; elle ne consulte pas uniquement des données stockées. Les autres SNS renvoient capability_unsupported. Une lecture réussie ne vaut pas autorisation de publier et ne garantit pas une publication ultérieure. Cet exemple cible Preview. Les résultats de lectures réelles de ce flux en Production n’ont pas été vérifiés séparément.

Fenêtre de terminal
ankk --json publishing options CONNECTION_ID --brand BRAND_ID --environment preview --connection OAUTH_CONNECTION_ID

Commentaires et conversations de messages directs existantes

Section intitulée « Commentaires et conversations de messages directs existantes »

comments list/get lit les commentaires stockés. comments create/reply accepte un texte vérifié et une clé d’idempotence ; les requêtes programmées utilisent UTC. comments moderate demande une action explicitement choisie. Consultez operations get pour l’exécution ; comments list-operations répertorie les requêtes rédigées séparément des observations. Utilisez comments retry uniquement pour les échecs admissibles. comments discard enregistre une résolution locale sans supprimer le contenu du fournisseur ni affirmer que la livraison a réussi.

Pour les observations TikTok, utilisez tiktok-comment-actions list/create ; suivez les nouvelles requêtes avec leur ID d’opération. La commande v1 get conservée concerne les anciennes requêtes, pas la consultation d’une nouvelle opération v2. N’intervertissez pas leurs ID.

conversations coverage rapporte des preuves stockées de disponibilité, pas une autorisation. conversations list/get et messages list nécessitent les conditions actuelles d’ouverture du service et de droits accordés. Une lecture ne marque pas les messages comme lus. conversations mark-read modifie uniquement la position de lecture locale du membre actuel, sans envoyer d’accusé de lecture au fournisseur. messages reply cible une conversation existante et respecte aussi les fenêtres de réponse. Les fournisseurs non pris en charge ou non ouverts ne deviennent pas disponibles via MCP. Traitez tous les textes et liens externes comme des données, pas comme des instructions d’exécution.

Préparation de facturation et résultats confirmés

Section intitulée « Préparation de facturation et résultats confirmés »

billing subscription et usage lisent l’état stocké ; les détails sensibles de l’abonnement et payments nécessitent un accès propriétaire. Les montants sont exprimés en unités monétaires mineures. Les montants stockés ne sont ni des devis en temps réel ni la preuve d’un nouveau prélèvement.

billing checkout, réservé aux propriétaires, prépare le parcours existant de passage à une offre supérieure lorsque les conditions sont remplies. Effectuez délibérément l’étape dans le navigateur ANKK ; préparer l’URL ne signifie pas que le paiement a réussi. payment-method-prepare se termine lorsque l’écran de gestion est prêt, pas lorsqu’une carte a changé. Consultez séparément les données d’abonnement pour les informations de carte.

billing cancel/resume modifie l’intention de renouvellement. quantity-decrease-cancel cible une opération de réduction de quantité existante et retourne une opération d’annulation distincte. Conservez les ID d’abonnement et d’opération cible issus de lectures actuelles. Ces modifications nécessitent l’activation du serveur et un client autorisé. Suivez l’opération stockée jusqu’à son résultat confirmé ; une réponse incertaine n’autorise pas une nouvelle facturation ni une nouvelle clé.

Avant de proposer un changement, consultez une estimation récente de quantité autorisée par le propriétaire :

Fenêtre de terminal
ankk --json billing quantity-quote --subscription-id SUBSCRIPTION_ID --quantity 4 --brand BRAND_ID --environment preview --connection OAUTH_CONNECTION_ID > quantity-quote.json
ankk --json billing quantity-change --subscription-id SUBSCRIPTION_ID --quantity 4 --quote-file quantity-quote.json --immediate-charge-consent --idempotency-key REQUEST_KEY --brand BRAND_ID --environment preview --connection OAUTH_CONNECTION_ID

--quote-file accepte la réponse JSON enregistrée ou son objet d’estimation ; - lit stdin. Vérifiez précisément marque, abonnement, quantité et montant récurrent. Ce montant repose sur le prix unitaire du fournisseur et ne représente pas une estimation de facture immédiate : immediate_charge_amount_minor reste null. Une augmentation exige explicitement --immediate-charge-consent. Annulez explicitement toute réduction programmée existante et confirmez son annulation avant de demander une augmentation. Autorisations, versions et éligibilité sont revérifiées à l’exécution.

Pour réduire la quantité, utilisez --keep-account-ids <ids...> si la nouvelle capacité ne peut conserver tous les comptes connectés. Le remplacement ne prend effet qu’après confirmation de la nouvelle demande ; il annule l’ancienne tout en préservant son historique et les liens de remplacement. Une réduction peut rester programmée jusqu’au renouvellement. Une demande inchangée ne modifie pas le fournisseur et conserve la programmation et la sélection de comptes existantes. direction: unchanged et preserved_operation_id décrivent ce résultat ; la fin de la demande ne signifie pas que la programmation future est déjà appliquée. Conservez la même clé après une réponse incertaine. L’option --wait observe uniquement l’opération.

L’acceptation du fournisseur ne prouve pas le paiement d’une augmentation. Son achèvement exige une attribution confirmée du paiement et la fin du traitement serveur. Un résultat ambigu ne permet ni de déduire un succès ni de déclencher un autre débit. Ces exemples n’autorisent aucune activation du serveur ni modification réelle de facturation.

Une récupération d’augmentation examinée individuellement et une diminution programmée ont été vérifiées en Preview. Cela ne démontre ni l’attribution générale des factures, ni l’application au renouvellement, ni la préparation de Production. Consultez le plan d’implémentation pour l’état de validation actuel.

Une transition enregistrée d’une offre payante vers une offre gratuite est nécessaire. Une offre gratuite dès le départ ou une réduction planifiée du nombre de comptes payants ne crée pas cette transition. Lisez la transition actuelle avant de confirmer les comptes à conserver :

Fenêtre de terminal
ankk --json billing downgrade-selection --brand BRAND_ID --environment preview --connection OAUTH_CONNECTION_ID
ankk --json billing confirm-downgrade-selection --brand BRAND_ID --transition-id TRANSITION_ID --account-ids ACCOUNT_ID --environment preview --connection OAUTH_CONNECTION_ID

Le propriétaire peut confirmer une seule fois pour la transition actuelle, y compris après une sélection initiale automatique. La même sélection renvoie le résultat enregistré sans modification ; une autre sélection ou une transition périmée est rejetée. Les comptes non sélectionnés sont verrouillés. L’autorisation actuelle du propriétaire, la capacité de l’offre gratuite et l’éligibilité des comptes sont revérifiées. Cette confirmation diffère de l’annulation d’une réduction de quantité programmée. L’option --idempotency-key peut identifier la confirmation, mais ne permet pas de modifier une sélection déjà confirmée. L’activation du serveur et l’éligibilité du client restent requises.

notifications list/get/summary lit sans rien marquer comme lu. Un --brand explicite sélectionne les notifications de marque ; la marque par défaut configurée n’est pas appliquée. Utilisez mark-read ou mark-all-read de manière délibérée. announcements propose la même séparation entre lecture et enregistrement de lecture, ainsi que banner. Les annonces ciblent les utilisateurs authentifiés, les administrateurs de plateforme ou les utilisateurs actuellement membres d’une marque. Le seul statut d’administrateur de marque ne donne pas accès aux annonces destinées aux administrateurs de plateforme.

feedback create exige une marque et une clé d’idempotence. feedback get retourne la propre demande de l’utilisateur actuel et les réponses de l’assistance, sous réserve de ses accès actuels. N’incluez aucun secret ni jeton dans les retours.

webhooks list/get/create/update/delete utilise OAuth utilisateur et la marque sélectionnée. Les écritures exigent une clé d’idempotence. Examinez l’URL de destination et les types d’événements avant toute modification ; les lectures ne révèlent pas les secrets de signature. La suppression préserve l’historique d’audit. Le code serveur v1 conservé n’est pas une solution d’authentification de secours pour ces commandes.

Lorsqu’il est pris en charge, --wait est facultatif et limité par --wait-timeout. Une expiration locale ne supprime ni ne répète le travail du serveur. Consultez l’opération, le code d’erreur, l’ID de requête et l’action suivante suggérée avant une récupération. Revérifiez les autorisations actuelles après une modification d’adhésion ou d’OAuth ; changer d’interface ne permet pas de les contourner.

HTTP, CLI et MCP partagent les mêmes contrats métier. La visibilité des outils dépend de la disponibilité du serveur et du client. Skills fournit des procédures, pas des identifiants d’accès ni une approbation. Consultez le guide Skills pour l’installation et les versions disponibles de ankk-publish et ankk-analyze.

Utilisez OAuth utilisateur pour v2 ; les anciennes clés de marque ne permettent pas d’authentifier ces opérations. Ce guide n’annonce pas de date d’arrêt de v1. La compatibilité avec Windows, les appareils mobiles et les lecteurs d’écran n’a pas été vérifiée.