Per Webhook übergeben
Ein Kanal, bei dem Per Webhook übergeben eingeschaltet ist, übergibt jeden Beitrag als eine signierte Anfrage an eine Adresse Ihrer Wahl, und Ihr eigenes System übernimmt von dort, ohne jemanden dazwischen. (Damit Reelwire ihn selbst auf der Plattform postet, siehe Per Plattform-Connector gepostet.) Diese Seite beschreibt, was jedes solche System gemeinsam hat: die Einrichtung, was ankommt, wie Sie ihm vertrauen und wie Sie Reelwire mitteilen, was geschehen ist. Was Ihr System dann mit jedem Beitrag tut, ist eines von dreien:
| Anleitung | Wann sie passt |
|---|---|
| Über die APIs der Plattformen posten | Ihr eigenes Skript postet jeden Kanal über die Entwickler-API der Plattform selbst: Instagram, TikTok, YouTube, Facebook, LinkedIn und die übrigen. |
| Von einer KI-Sitzung posten lassen | Ihr eigenes Skript startet für jeden Beitrag eine Sitzung eines KI-Assistenten, der einen Browser bedient und ihn ohne Aufsicht für Sie postet. |
| Über die API eines Posting-Dienstes posten | Ihr Skript oder eine Automatisierung (Make, n8n, Zapier) gibt jeden Beitrag an die API eines Posting-Dienstes weiter, der ihn auf den Plattformen postet. |
Reelwire liefert keines davon mit und führt keines aus. Was folgt, ist die Form, die jeder Empfänger hat, und der Vertrag selbst steht unter Webhooks.
Einrichten
- Geben Sie auf der Seite Webhook (unter Verbindungen) die Adresse, auf der Ihr Empfänger lauscht, in Webhook-Adresse ein und klicken Sie auf Speichern. Sie muss mit
https://beginnen und aus dem Internet erreichbar sein. Zum Festlegen ist die Berechtigung Verwaltung nötig. - Geben Sie Ihrem Empfänger das Signatur-Secret. Die Seite zeigt nur seinen Anfang und sein Ende: Klicken Sie auf Secret kopieren, geben Sie das Passwort ein, mit dem Sie sich anmelden, und es zeigt das ganze Secret mit Kopieren. Bewahren Sie es an einem Ort auf, den Ihr Empfänger lesen kann; es ist alles, was Ihr Empfänger braucht. Secret erneuern daneben erzeugt ein neues und setzt das alte sofort außer Kraft, erneuern Sie es also nur, wenn Sie Ihrem Empfänger das neue geben können.
- Schreiben Sie den Empfänger oder beginnen Sie mit dem auf derselben Seite: Die Karte Code abrufen (Webhook) enthält einen funktionierenden Empfänger in Node.js, Python, PHP und C#, der die Signatur prüft, eine veraltete Anfrage ablehnt, eine bereits bearbeitete Zustellung überspringt und jeden Beitrag zurückmeldet. Setzen Sie Ihr Signatur-Secret anstelle von
YOUR_SIGNING_SECRETein und einen API-Schlüssel mit Schreibrecht für Beiträge anstelle vonYOUR_API_KEY. - Klicken Sie auf Zustellung testen. Ihr Empfänger erhält eine signierte Anfrage mit
"event": "ping", und die Seite zeigt, was er geantwortet hat. Verwenden Sie das, bis die Signaturprüfung besteht. - Schalten Sie bei jedem Kanal, dessen Beiträge zu Ihnen kommen sollen, in seinen Einstellungen Per Webhook übergeben ein (Kanäle). Lassen Sie Per E-Mail übergeben ebenfalls eingeschaltet, wenn auch eine Person jeden Beitrag erhalten soll.
Was ankommt
Wenn ein Beitrag fällig ist, eine Anfrage pro Übergabe: Ein Beitrag, der an drei Kanäle mit eingeschaltetem Per Webhook übergeben geht und keine Freigabe braucht, kommt einmal an, mit allen dreien in channels; ein Kanal, der eine Freigabe braucht, kommt für sich allein an, sobald er freigegeben ist. Ein Kanal mit ausgeschaltetem Webhook steht nie in channels, auch wenn er in derselben Übergabe per E-Mail oder über seinen Plattform-Connector hinausgeht. Jeder Kanal bringt sein Video (und sein Coverbild), seinen Text, wie die Plattform ihn aufnimmt (in vier Längen, in captions, bei einem Kanal auf Keine bestimmte Plattform), seine Veröffentlichungseinstellungen in posting und die IDs zum Zurückmelden mit. Kanäle desselben Beitrags, die aus dieser Anfrage ausgelassen sind, werden in omitted genannt, mit dem Grund und ob sie folgen.

Später erhält dieselbe Adresse post.update, wenn jemand einen übergebenen Beitrag ändert, und post.delete, wenn jemand darum bittet, ihn zu entfernen, jeweils mit eingeschaltetem Webhook im Dialog der Anfrage unter Beiträge. Der Header x-reelwire-event sagt, welches. Beitragsanfrage erneut senden sendet dort den Beitrag erneut als neues post.publish, mit neuer Zustell-ID, sodass Ihr Empfänger wieder darauf reagiert.
Vertrauen Sie ihm
- Prüfen Sie die Signatur am rohen Body, bevor Sie ihn parsen:
x-reelwire-signatureistt=<unix seconds>,v1=<hex>, undv1ist der HMAC-SHA256 von<t>.<raw body>mit Ihrem Signatur-Secret. Vergleichen Sie in konstanter Zeit. - Lehnen Sie einen veralteten Zeitstempel ab: Mehr als 300 Sekunden Abstand zu Ihrer Uhr ist ein Replay.
- Handeln Sie bei einer Zustellung nur einmal:
x-reelwire-deliveryist bei jedem erneuten Versuch derselben Zustellung gleich. Halten Sie sie erst fest, wenn Sie damit fertig sind, damit ein Fehler auf halbem Weg den erneuten Versuch durchlässt. - Prüfen Sie das Video nach dem Herunterladen anhand seines
sha256. Die Links funktionieren sieben Tage ab jedem Versand.
In Node sind es für die Prüfung ein paar Zeilen:
import { createHmac, timingSafeEqual } from "node:crypto";
export const fromReelwire = (rawBody, header, secret) => {
const parts = Object.fromEntries(header.split(",").map((part) => part.split("=")));
if (Math.abs(Date.now() / 1000 - Number(parts.t)) > 300) return false;
const expected = createHmac("sha256", secret).update(`${parts.t}.${rawBody}`).digest("hex");
return parts.v1?.length === expected.length && timingSafeEqual(Buffer.from(parts.v1), Buffer.from(expected));
};
Antworten, dann arbeiten
Antworten Sie sofort mit einem beliebigen 2xx und posten Sie danach. Die Antwort sagt nur, dass die Anfrage angekommen ist: Sie veröffentlicht nichts, und eine, die länger als 30 Sekunden dauert, zählt als Fehler und wird erneut gesendet. Das gilt auch für eine Weiterleitung: Reelwire folgt ihr nicht, geben Sie also die Adresse an, die selbst antwortet. Eine fehlgeschlagene Anfrage wird nach 10 Sekunden, einer Minute, fünf Minuten, einer Viertelstunde, einer Stunde und zwei Stunden erneut versucht und dann aufgegeben; ein Beitrag, den kein Weg hinausgebracht hat, zeigt dann unter Beiträge BEITRAG FEHLGESCHLAGEN, mit dem Grund, und Beitragsanfrage erneut senden unter Mehr versucht es dort erneut. Versendeter Inhalt auf der Seite Aktivität zeigt jeden Versuch, Details zeigt, was eine Anfrage trug und was zurückkam, und Erneut zustellen sendet eine noch einmal, mit derselben Zustell-ID.
Sagen Sie, was geschehen ist
Reelwire zeigt den Beitrag eines Kanals als Übergeben, bis jemand sagt, was daraus geworden ist. Ihr Empfänger sagt es pro Kanal mit einem API-Schlüssel, erstellt auf der Seite API-Schlüssel, der Schreibrecht für Beiträge hat:
POST https://app.reelwire.io/v1/posts/{postId}/report
Authorization: Bearer rw_...
Content-Type: application/json
{ "status": "published", "url": "https://www.youtube.com/shorts/...", "platformPostId": "..." }

postId ist channels[].postId aus der Anfrage. Der Status ist einer von:
| Status | Wann |
|---|---|
published | Er ist online. Senden Sie seine url und die eigene ID der Plattform als platformPostId, falls Sie eine haben: Beide kommen in einem späteren post.update oder post.delete zu Ihnen zurück, als permalink und platformPostId, damit Sie den Beitrag wiederfinden. |
skipped | Sie haben entschieden, ihn nicht zu posten. |
failed | Er konnte nicht gepostet werden. Senden Sie einen reason: Die Seite Beiträge zeigt ihn, und eine Person kann ihn manuell posten. |
deleted | Sie haben ihn nach einem post.delete entfernt. |
Dasselbe zweimal zu sagen ist in Ordnung. Alles, was der Zustand des Beitrags nicht erlaubt, wird mit 409 und dem Zustand beantwortet, in dem er sich befindet, etwa wenn ein Beitrag übersprungen werden soll, der bereits als veröffentlicht gemeldet ist.