Verbinden Sie Ihre Systeme mit Marcomm AI
Lesen Sie Nachrichtenübersichten, kritische Meldungen und offene Freigaben aus Ihren eigenen Systemen und genehmigen oder lehnen Sie direkt in Ihren Freigabetools ab. Die API steht ab dem Team-Tarif nach einer kurzen Prüfung zur Verfügung.
Erste Schritte
- 1Zugang beantragen
Beschreiben Sie Ihr System und wählen Sie die benötigten Daten. Wir prüfen die Anträge.
- 2Schlüssel erstellen
Nach der Freigabe erstellen Sie unter Einstellungen, API einen Schlüssel. Er wird nur einmal angezeigt, speichern Sie ihn daher in Ihrem System.
- 3Anfrage senden
Senden Sie den Schlüssel im Authorization-Header und rufen Sie einen der unten aufgeführten Endpunkte auf.
Beispielanfrage
curl https://app.marcomm.works/api/v1/news/digest?days=7 \
-H "Authorization: Bearer mc_live_..."Authentifizierung
Senden Sie Ihren Schlüssel bei jeder Anfrage als Bearer-Token. Ein persönlicher Schlüssel handelt als die Person, die ihn erstellt hat, und kann daher in deren Namen Freigaben lesen und entscheiden. Ein Workspace-Schlüssel wird von einem Admin erstellt und kann nur lesen. Schlüssel können ablaufen, auf IP-Adressen beschränkt und rotiert werden: Der alte Schlüssel funktioniert nach einer Rotation noch 24 Stunden.
Scopes
Ein Schlüssel enthält nur die Scopes, für die Ihr Antrag genehmigt wurde.
- news
- Nachrichtenübersicht, Artikel und Medien.
- crisis
- Kritische Meldungen und Krisenvorfälle.
- approvals
- Offene Freigaben sowie deren Genehmigung oder Ablehnung mit einem persönlichen Schlüssel.
- content
- Pressemitteilungen und Blogbeiträge lesen.
Endpunkte
Die Pfade beginnen mit /api/v1. Lesende Endpunkte nutzen GET und nehmen Query-Parameter entgegen. Die Antwort ist JSON in der Form {"data": ...}.
| Methode | Pfad | Scope | Funktion |
|---|---|---|---|
| GET | /api/v1/news/digest | news | Berichtsvolumen, Stimmung und wichtigste Medien für einen Zeitraum. |
| GET | /api/v1/news/articles | news | Nachrichtenberichterstattung durchsuchen. |
| GET | /api/v1/news/outlets | news | Medien, die über Ihre Unternehmen berichten. |
| GET | /api/v1/crisis/incidents | crisis | Krisenvorfälle und kritische Artikel. |
| GET | /api/v1/approvals | approvals | Pressemitteilungen und Blogbeiträge, die auf den Schlüsselinhaber warten, sowie die, deren Freigabe der Schlüsselinhaber angefordert hat. |
| GET | /api/v1/press-releases | content | Pressemitteilungen auflisten. |
| GET | /api/v1/press-releases/{id} | content | Eine Pressemitteilung mit Einleitung und Text. |
| GET | /api/v1/blog-posts | content | Blogbeiträge auflisten. |
| GET | /api/v1/blog-posts/{id} | content | Ein Blogbeitrag mit Text. |
| POST | /api/v1/approvals/press-releases/{id} | approvals | Eine Pressemitteilung genehmigen oder ablehnen, die auf den Schlüsselinhaber wartet. |
| POST | /api/v1/approvals/blog-posts/{id} | approvals | Einen Blogbeitrag genehmigen oder ablehnen, der auf den Schlüsselinhaber wartet. |
Genehmigen und ablehnen
Senden Sie {"decision": "approve"} oder {"decision": "reject", "comment": "..."} an das Element. Für eine Ablehnung ist ein Kommentar nötig. Die Entscheidung folgt denselben Regeln wie in der App und in Slack und wird unter dem Schlüsselinhaber erfasst. Enthält der Text Formulierungen, die bestätigt werden müssen, erhalten Sie 409 confirmation_required mit den Warnungen und können die Anfrage mit "force": true erneut senden.
curl -X POST https://app.marcomm.works/api/v1/approvals/press-releases/<id> \
-H "Authorization: Bearer mc_live_..." \
-H "Content-Type: application/json" \
-d '{"decision":"reject","comment":"Please fix the headline."}'Ratenlimits
Die Limits gelten pro Workspace, pro Minute und pro Tag (UTC). Die Antworten enthalten die folgenden Header. Bei Überschreitung erhalten Sie 429 mit Retry-After. Für ein höheres Limit stellen Sie unter Einstellungen, API eine Anfrage. Unser Team prüft sie.
- X-RateLimit-Limit
- Anfragen pro Minute.
- X-RateLimit-Remaining
- Verbleibende Anfragen in der aktuellen Minute.
- X-RateLimit-Reset
- Unix-Zeitpunkt, zu dem das Minutenfenster zurückgesetzt wird.
- X-RateLimit-Day-Limit
- Anfragen pro Tag.
- X-RateLimit-Day-Remaining
- Verbleibende Anfragen heute.
- Retry-After
- Sekunden bis zum nächsten Versuch. Nur bei 429.
Fehler
Fehler werden als JSON in der Form {"error": {"code": ..., "message": ...}} zurückgegeben.
| Code | Status | Bedeutung |
|---|---|---|
| invalid_key | 401 | Der Schlüssel fehlt, ist fehlerhaft oder wurde widerrufen. |
| expired | 401 | Der Schlüssel ist abgelaufen. Erstellen oder rotieren Sie einen Schlüssel. |
| ip_denied | 403 | Der Schlüssel ist auf andere IP-Adressen beschränkt. |
| plan_required | 403 | Der Workspace hat nicht den Team-Tarif oder höher. |
| access_required | 403 | Der API-Zugang ist für diesen Workspace nicht genehmigt. |
| suspended | 403 | Der API-Zugang für diesen Workspace ist gesperrt. |
| scope_denied | 403 | Dem Schlüssel fehlt der Scope, den dieser Endpunkt benötigt. |
| personal_key_required | 403 | Nur ein persönlicher Schlüssel kann genehmigen oder ablehnen. |
| denied | 403 | Die Rolle des Schlüsselinhabers erlaubt das nicht. |
| unknown_endpoint | 404 | Diesen Endpunkt gibt es nicht. |
| comment_required | 400 | Für eine Ablehnung ist eine Begründung erforderlich. |
| confirmation_required | 409 | Warnungen müssen bestätigt werden. Senden Sie die Anfrage erneut mit force auf true. |
| rate_limited | 429 | Das Limit pro Minute wurde überschritten. |
| daily_limit | 429 | Das Tageslimit wurde erreicht. |
Webhooks
Warnungen, Freigabeanfragen und das Morgenbriefing können auch an Ihr System gesendet werden. Fügen Sie ein Ziel unter Einstellungen, API, Webhooks hinzu. Jede Anfrage ist JSON mit den Feldern event (alert, approval oder briefing), workspace, title, text, url, data und sentAt. Eine Freigabeanfrage enthält data.kind (press_release, blog oder event) und data.id, mit denen Sie über die API lesen und entscheiden können.
Anfragen sind signiert. Berechnen Sie den HMAC-SHA256 des rohen Anfragetexts mit Ihrem Signaturgeheimnis und vergleichen Sie ihn mit dem Header X-Marcomm-Signature im Format sha256=<hex>. Weisen Sie Anfragen ab, die nicht übereinstimmen.
Webhook in Node.js prüfen
import { createHmac, timingSafeEqual } from 'node:crypto';
export function isFromMarcomm(rawBody: string, signature: string, secret: string) {
const expected = 'sha256=' + createHmac('sha256', secret).update(rawBody).digest('hex');
const a = Buffer.from(expected);
const b = Buffer.from(signature);
return a.length === b.length && timingSafeEqual(a, b);
}Anbindungsanleitungen
Aus Ihrem Freigabesystem genehmigen
- Fügen Sie ein generisches Webhook-Ziel hinzu und aktivieren Sie Freigabeanfragen.
- Wenn ein Freigabe-Webhook eintrifft, prüfen Sie die Signatur und lesen Sie data.kind und data.id.
- Zeigen Sie die Anfrage in Ihrem Freigabesystem an. Den Text lesen Sie bei Bedarf mit GET press-releases/{id} oder blog-posts/{id}.
- Senden Sie die Entscheidung mit dem persönlichen Schlüssel der entscheidenden Person. Termine und E-Mail-Versände werden in der App über den Link in der Nachricht entschieden.
Nachrichtenübersicht in Ihr Dashboard einspeisen
- Erstellen Sie einen Workspace-Schlüssel mit den Scopes news und crisis.
- Rufen Sie news/digest nach Zeitplan auf, zum Beispiel jeden Morgen.
- Rufen Sie crisis/incidents häufiger auf, wenn Sie eigene Alarme wünschen. Beachten Sie die X-RateLimit-Header, um innerhalb Ihrer Limits zu bleiben.
Warnungen in Ihrem Chat
- Erstellen Sie für Teams und Google Chat die Webhook-URL des Raums und fügen Sie sie unter Einstellungen, API, Webhooks als Ziel hinzu.
- Verbinden Sie JANDI, Dooray! und Chatwork unter Einstellungen, Integrationen.
- Wählen Sie, ob jedes Ziel Warnungen, Freigabeanfragen und das Morgenbriefing erhält, und senden Sie eine Testnachricht.
Bereit zur Verbindung?
Ein Eigentümer oder Admin des Workspace stellt den Antrag unter Einstellungen, API. Sobald die Prüfung abgeschlossen ist, benachrichtigen wir Sie per E-Mail und in der App.
API-Einstellungen öffnen