Communitygithub.com

wechat-image-api

Utilise uniquement l'API officielle api.weixin.qq.com pour créer et vérifier des brouillons d'articles avec images. Pas de navigateur, ni RPA.

Qu'est-ce que wechat-image-api ?

Cette compétence (skill) permet de créer et vérifier des brouillons d'articles de type "image-text" (newspic) pour un compte officiel WeChat, en utilisant exclusivement l'API officielle `api.weixin.qq.com`, sans navigateur, RPA, ou interface de publication. Elle est conçue pour être exécutée dans un environnement Windows avec PowerShell 7.2+, et gère de manière sécurisée les secrets (AppID, AppSecret) via le chiffrement DPAPI de Windows. Le processus se déroule en plusieurs étapes : validation locale du dossier de ressources, upload des images vers le matériel permanent, création du brouillon via l'API draft/add, puis vérification complète via l'API draft/get pour s'assurer que le compte, le titre, le contenu, l'ordre des images et les paramètres de commentaires sont corrects. La compétence est idempotente et résiliente : elle utilise des verrous pour éviter les exécutions concurrentes, des points de contrôle pour ne pas recréer des brouillons déjà validés, et gère les erreurs (comme les IP non autorisées) sans jamais basculer vers un navigateur. Elle est particulièrement utile pour les développeurs qui souhaitent automatiser la création de brouillons WeChat de manière fiable et sans dépendances externes.

Compatible avec~Claude Code✓Codex CLI~Cursor
npx skills add 413162826/kevinsu-skills

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

API de brouillon d'articles avec images pour WeChat

Utilise uniquement l'interface officielle api.weixin.qq.com pour créer et vérifier des brouillons d'articles avec images. Ne lance pas de navigateur, n'appelle pas les interfaces de publication, d'envoi groupé ou de suppression, et ne fournit pas de solution de repli par RPA.

Environnement

Nécessite Windows et PowerShell 7.2+. L'AppSecret est chiffré à l'aide du DPAPI de l'utilisateur Windows actuel et enregistré par défaut dans $env:CODEX_HOME\secrets ; si CODEX_HOME n'est pas défini, le chemin utilisé est $env:USERPROFILE\.codex\secrets. Les requêtes réseau sont effectuées dans le processus PowerShell, sans transmettre le token d'accès à des commandes externes.

Entrée et validation hors ligne

Avant l'exécution, lisez intégralement le fichier references/package-contract.md. Le répertoire des ressources doit contenir un fichier image-post.json et 1 à 20 images ; le champ account doit être explicitement renseigné, et le champ des commentaires ne doit pas être omis.

Localisez d'abord la compétence, puis effectuez la validation hors ligne :

$codexHome = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $env:USERPROFILE '.codex' }
$skill = Join-Path $codexHome 'skills\wechat-image-api'
& (Join-Path $skill 'scripts\Test-WeChatImagePackage.ps1') -InputFolder 'D:\dossier_ressources_images'

Si vous avez besoin d'un exemple complet, générez-le dans un nouveau répertoire ne contenant pas encore de fichier d'exemple, puis validez-le :

& (Join-Path $skill 'scripts\New-WeChatImagePackageExample.ps1') -OutputFolder 'D:\exemple_image'

Configuration initiale

Les deux compétences API WeChat peuvent partager les mêmes identifiants DPAPI. Si les identifiants n'existent pas, ne demandez pas à l'utilisateur de coller l'AppSecret dans la conversation ; exécutez la configuration interactive locale :

& (Join-Path $skill 'scripts\Set-WeChatOfficialAccountCredential.ps1')
& (Join-Path $skill 'scripts\Test-WeChatOfficialAccountApi.ps1')

La deuxième commande vérifie l'AppID, l'AppSecret, les droits de brouillon et la liste blanche IP. Le champ account du dossier de ressources doit correspondre strictement au nom du compte officiel enregistré lors de la configuration.

Si WeChat renvoie 40164 invalid ip, arrêtez immédiatement et communiquez à l'utilisateur l'adresse IP de sortie publique figurant dans l'erreur, en lui rappelant d'ajouter cette IP via la section "Paramètres et développement → Gestion des interfaces de développement → Liste blanche IP". Une fois l'utilisateur confirmé, ne réessayez que la même API officielle ; il est interdit de passer par un navigateur, RPA, profil de cookie ou tout autre canal de publication.

Création et vérification du brouillon

N'exécutez cette étape que si l'utilisateur demande explicitement la création d'un brouillon :

& (Join-Path $skill 'scripts\Publish-WeChatImageDraft.ps1') -InputFolder 'D:\dossier_ressources_images'

Le script télécharge les images une par une vers material/add_material, puis crée un brouillon de type newspic via draft/add ; la première image sert de couverture. Enfin, il relit le brouillon via draft/get et vérifie le compte, le titre, le corps, l'ordre des images, les paramètres de commentaires et le media_id.

Idempotence et limites des exceptions

  • Chaque dossier de ressources est verrouillé de manière exclusive ; aucune exécution concurrente n'est autorisée sur le même dossier.
  • Les points de contrôle ne sont avancés qu'après réception confirmée du media_id ; si un ID de brouillon a déjà été enregistré, une exécution répétée ne fait que relire et vérifier, sans recréer le brouillon.
  • Si la réseau ou le processus est interrompu pendant le téléchargement des images ou la soumission via draft/add, le résultat peut être indéterminé. Toute exécution ultérieure doit être arrêtée ; aucune relance automatique n'est autorisée. L'utilisateur doit d'abord vérifier manuellement la bibliothèque de ressources ou la boîte à brouillons, puis continuer avec un nouveau dossier.
  • Si les empreintes des ressources changent mais qu'un point de contrôle ancien existe, l'exécution s'arrête sans effacer silencieusement l'état.
  • L'état et les accusés de réception sont enregistrés via un remplacement atomique de fichier temporaire dans le même dossier, afin d'éviter de laisser un JSON tronqué.
  • Ce n'est qu'après que draft/get a vérifié tous les champs que le script peut rapporter "Brouillon créé et vérifié avec succès" ; il ne doit jamais rapporter "Publié".
  • L'accusé de réception est écrit dans wechat-image-api-receipt.json. En cas d'échec d'une API officielle, le rapport est généré sur place ; cette compétence ne dispose d'aucun repli par navigateur ou RPA.

Skills associés