Langkau ke kandungan
Pembangun

Sambungkan sistem anda ke Marcomm AI

Baca ringkasan berita, berita kritikal dan kelulusan yang menunggu daripada sistem anda sendiri, serta luluskan atau tolak daripada alat kelulusan anda. API tersedia pada pelan Team ke atas, selepas semakan ringkas.

Bermula

  1. 1
    Mohon akses

    Huraikan sistem anda dan pilih data yang diperlukan. Setiap permohonan disemak sebelum diluluskan.

  2. 2
    Cipta kunci

    Selepas diluluskan, cipta kunci di Tetapan > API. Kunci hanya dipaparkan sekali, jadi simpan dalam sistem anda.

  3. 3
    Hantar permintaan

    Hantar kunci dalam pengepala Authorization dan panggil salah satu titik akhir di bawah.

Contoh permintaan

curl https://app.marcomm.works/api/v1/news/digest?days=7 \
  -H "Authorization: Bearer mc_live_..."

Pengesahan

Hantar kunci anda sebagai token Bearer bersama setiap permintaan. Kunci peribadi bertindak sebagai orang yang mencipta kunci itu, jadi ia boleh membaca dan memutuskan kelulusan atas nama orang tersebut. Kunci ruang kerja dicipta oleh pentadbir dan hanya boleh membaca. Kunci boleh dibuat tamat tempoh, dihadkan kepada alamat IP tertentu dan diputar: kunci lama terus berfungsi selama 24 jam selepas diputar.

Skop

Setiap kunci hanya membawa skop yang diluluskan untuk aplikasi anda.

news
Ringkasan berita, artikel dan media.
crisis
Berita kritikal dan insiden krisis.
approvals
Kelulusan yang menunggu, serta meluluskan atau menolaknya dengan kunci peribadi.
content
Membaca siaran media dan catatan blog.

Titik akhir

Laluan bermula dengan /api/v1. Titik akhir bacaan menggunakan GET dan menerima parameter pertanyaan. Respons ialah JSON dalam bentuk {"data": ...}.

KaedahLaluanSkopFungsi
GET/api/v1/news/digestnewsJumlah liputan, sentimen dan media teratas bagi satu tempoh.
GET/api/v1/news/articlesnewsCari liputan berita.
GET/api/v1/news/outletsnewsMedia yang membuat liputan tentang syarikat anda.
GET/api/v1/crisis/incidentscrisisInsiden krisis dan artikel kritikal.
GET/api/v1/approvalsapprovalsSiaran media dan catatan blog yang menunggu pemilik kunci, serta yang diminta pemilik kunci untuk diluluskan.
GET/api/v1/press-releasescontentSenaraikan siaran media.
GET/api/v1/press-releases/{id}contentSatu siaran media dengan perenggan pendahuluan dan teksnya.
GET/api/v1/blog-postscontentSenaraikan catatan blog.
GET/api/v1/blog-posts/{id}contentSatu catatan blog dengan teksnya.
POST/api/v1/approvals/press-releases/{id}approvalsLuluskan atau tolak siaran media yang menunggu pemilik kunci.
POST/api/v1/approvals/blog-posts/{id}approvalsLuluskan atau tolak catatan blog yang menunggu pemilik kunci.

Luluskan dan tolak

Hantar {"decision": "approve"} atau {"decision": "reject", "comment": "..."} kepada item itu. Penolakan memerlukan komen. Keputusan mengikut peraturan yang sama seperti dalam aplikasi dan Slack, dan direkodkan atas nama pemilik kunci. Jika teks mengandungi frasa yang memerlukan pengesahan, anda menerima 409 confirmation_required bersama amaran, dan anda boleh menghantar semula permintaan dengan "force": true.

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."}'

Had kadar

Had ditetapkan bagi setiap ruang kerja, setiap minit dan setiap hari (UTC). Respons membawa pengepala di bawah. Apabila had dilepasi, anda menerima 429 dengan Retry-After. Untuk menaikkan had, mohon peningkatan di Tetapan > API. Pasukan kami akan menyemaknya.

X-RateLimit-Limit
Permintaan dibenarkan seminit.
X-RateLimit-Remaining
Permintaan yang berbaki dalam minit semasa.
X-RateLimit-Reset
Masa Unix apabila tetingkap minit ditetapkan semula.
X-RateLimit-Day-Limit
Permintaan dibenarkan sehari.
X-RateLimit-Day-Remaining
Permintaan yang berbaki hari ini.
Retry-After
Saat untuk menunggu sebelum mencuba semula. Hanya pada 429.

Ralat

Ralat dikembalikan sebagai JSON dalam bentuk {"error": {"code": ..., "message": ...}}.

KodStatusMaksud
invalid_key401Kunci tiada, tidak sah formatnya atau telah dibatalkan.
expired401Kunci telah tamat tempoh. Cipta atau putar kunci.
ip_denied403Kunci dihadkan kepada alamat IP lain.
plan_required403Ruang kerja tidak menggunakan pelan Team atau ke atas.
access_required403Akses API belum diluluskan untuk ruang kerja ini.
suspended403Akses API untuk ruang kerja ini digantung.
scope_denied403Kunci tidak mempunyai skop yang diperlukan oleh titik akhir ini.
personal_key_required403Hanya kunci peribadi boleh meluluskan atau menolak.
denied403Peranan pemilik kunci tidak membenarkan tindakan ini.
unknown_endpoint404Titik akhir tersebut tidak wujud.
comment_required400Sebab diperlukan untuk menolak.
confirmation_required409Amaran memerlukan pengesahan. Hantar semula dengan force ditetapkan kepada true.
rate_limited429Had seminit telah dilepasi.
daily_limit429Had harian telah dicapai.

Webhook

Makluman, permintaan kelulusan dan taklimat pagi juga boleh dihantar terus ke sistem anda. Tambah destinasi di Tetapan > API > Webhook. Setiap permintaan ialah JSON dengan medan event (alert, approval atau briefing), workspace, title, text, url, data dan sentAt. Permintaan kelulusan membawa data.kind (press_release, blog atau event) dan data.id, yang boleh anda gunakan untuk membaca dan memutuskan melalui API.

Setiap permintaan ditandatangani. Kira HMAC-SHA256 bagi badan permintaan mentah dengan rahsia tandatangan anda dan bandingkan dengan pengepala X-Marcomm-Signature, yang berbentuk sha256=<hex>. Tolak permintaan yang tidak sepadan.

Mengesahkan webhook dalam Node.js

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);
}

Panduan sambungan

Luluskan daripada sistem kelulusan anda

  1. Tambah destinasi webhook generik dan hidupkan permintaan kelulusan.
  2. Apabila webhook kelulusan tiba, sahkan tandatangan dan baca data.kind serta data.id.
  3. Paparkan permintaan dalam sistem kelulusan anda. Baca teks dengan GET press-releases/{id} atau blog-posts/{id} jika perlu.
  4. Hantar keputusan dengan kunci peribadi orang yang membuat keputusan. Acara dan penghantaran e-mel diputuskan dalam aplikasi melalui pautan dalam mesej.

Alirkan ringkasan berita ke papan pemuka anda

  1. Cipta kunci ruang kerja dengan skop news dan crisis.
  2. Panggil news/digest mengikut jadual, contohnya setiap pagi.
  3. Panggil crisis/incidents lebih kerap jika anda mahukan makluman sendiri. Pantau pengepala X-RateLimit supaya kekal dalam had anda.

Makluman dalam sembang anda

  1. Untuk Teams dan Google Chat, cipta URL webhook bilik itu dan tambahkannya sebagai destinasi di Tetapan > API > Webhook.
  2. Untuk JANDI, Dooray! dan Chatwork, sambungkan daripada Tetapan > Integrasi.
  3. Pilih antara makluman, permintaan kelulusan dan taklimat pagi yang diterima setiap destinasi, kemudian hantar mesej ujian.

Bersedia untuk menyambung?

Pemilik atau pentadbir ruang kerja memohon di Tetapan > API. Anda akan dimaklumkan melalui e-mel dan dalam aplikasi apabila semakan selesai.

Buka tetapan API