WeChat Official Account Bild-API
Verwendet ausschließlich die offiziellen Schnittstellen von api.weixin.qq.com zum Erstellen und Überprüfen von Bildnachrichten-Entwürfen. Es wird kein Browser gestartet, keine Veröffentlichungs-, Massenversand- oder Lösch-APIs aufgerufen und es wird kein RPA-Fallback bereitgestellt.
Umgebung
Erfordert Windows und PowerShell 7.2+. Das AppSecret wird mit DPAPI des aktuellen Windows-Benutzers verschlüsselt und standardmäßig unter $env:CODEX_HOME\secrets gespeichert; wenn CODEX_HOME nicht gesetzt ist, wird $env:USERPROFILE\.codex\secrets verwendet. Netzwerkanfragen werden innerhalb des PowerShell-Prozesses durchgeführt, das Access-Token wird nicht an externe Befehle übergeben.
Eingabe und Offline-Validierung
Lesen Sie vor der Ausführung vollständig references/package-contract.md. Das Materialverzeichnis muss image-post.json und 1–20 Bilder enthalten; account muss explizit ausgefüllt sein, und die Kommentarfelder dürfen nicht fehlen.
Lokalisieren Sie zuerst das Skill, dann führen Sie die Offline-Validierung durch:
$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:\Bildmaterialverzeichnis'
Wenn ein vollständiges Beispiel benötigt wird, generieren und validieren Sie es in einem neuen Verzeichnis, das noch keine Beispieldateien enthält:
& (Join-Path $skill 'scripts\New-WeChatImagePackageExample.ps1') -OutputFolder 'D:\Bildbeispiel'
Erstmalige Konfiguration
Beide WeChat-API-Skills können dieselben DPAPI-Anmeldeinformationen gemeinsam nutzen. Wenn keine Anmeldeinformationen vorhanden sind, darf der Benutzer das AppSecret nicht im Chat einfügen; führen Sie stattdessen die interaktive Konfiguration lokal aus:
& (Join-Path $skill 'scripts\Set-WeChatOfficialAccountCredential.ps1')
& (Join-Path $skill 'scripts\Test-WeChatOfficialAccountApi.ps1')
Der zweite Befehl überprüft AppID, AppSecret, Entwurfsberechtigungen und IP-Whitelist. Das account im Materialpaket muss exakt mit dem bei der Konfiguration gespeicherten Namen des Official Accounts übereinstimmen.
Wenn WeChat 40164 invalid ip zurückgibt, stoppen Sie sofort, teilen Sie dem Benutzer die öffentliche IP-Adresse aus der Fehlermeldung mit und erinnern Sie ihn daran, diese IP unter „Einstellungen & Entwicklung → Entwicklungsschnittstellenverwaltung → IP-Whitelist“ hinzuzufügen. Wiederholen Sie nach Bestätigung des Benutzers nur dieselbe offizielle API; es ist untersagt, auf Browser, RPA, Cookie-Profile oder andere Veröffentlichungskanäle auszuweichen.
Erstellen und Überprüfen eines Entwurfs
Führen Sie die folgenden Schritte nur aus, wenn der Benutzer ausdrücklich das Schreiben eines Entwurfs anfordert:
& (Join-Path $skill 'scripts\Publish-WeChatImageDraft.ps1') -InputFolder 'D:\Bildmaterialverzeichnis'
Das Skript lädt jedes Bild nacheinander über material/add_material hoch, erstellt dann mit draft/add einen newspic-Entwurf; das erste Bild wird von WeChat als Titelbild verwendet. Abschließend wird der Entwurf mit draft/get zurückgelesen und auf Konto, Titel, Inhalt, Bildreihenfolge, Kommentareinstellungen und media_id überprüft.
Idempotenz und Ausnahmegrenzen
- Jedes Materialverzeichnis verwendet eine exklusive Sperre; dasselbe Verzeichnis kann nicht gleichzeitig ausgeführt werden.
- Prüfpunkte werden nur nach dem bestätigten Empfang von
media_idfortgeschrieben; wenn bereits eine Entwurfs-ID aufgezeichnet wurde, wird bei wiederholter Ausführung nur der Entwurf zurückgelesen und überprüft, nicht erneut erstellt. - Wenn die Netzwerk- oder Prozessunterbrechung während des Bild-Uploads oder der
draft/add-Phase auftritt, kann das Ergebnis unbestimmt sein. Die nachfolgende Ausführung muss gestoppt werden; automatische Wiederholungen sind verboten. Überprüfen Sie zuerst manuell die Materialbibliothek oder den Entwurfsordner und verwenden Sie dann ein neues Verzeichnis, um fortzufahren. - Wenn sich der Material-Fingerabdruck ändert, aber ein alter Prüfpunkt existiert, wird gestoppt, ohne den Status stillschweigend zu löschen.
- Status und Quittungen verwenden atomare Ersetzungen von temporären Dateien im selben Verzeichnis, um hinterlassene JSON-Bruchstücke zu vermeiden.
- Nur wenn
draft/getalle Felder bestanden zurückliest, wird gemeldet: „Entwurf erstellt und überprüft“; es darf nicht gemeldet werden, dass er „veröffentlicht“ wurde. - Die Quittung wird in
wechat-image-api-receipt.jsongeschrieben. Bei Fehlschlag einer offiziellen API wird der Fehler sofort gemeldet; dieses Skill hat keinen Browser-/RPA-Fallback.