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
- 1Mohon akses
Huraikan sistem anda dan pilih data yang diperlukan. Setiap permohonan disemak sebelum diluluskan.
- 2Cipta kunci
Selepas diluluskan, cipta kunci di Tetapan > API. Kunci hanya dipaparkan sekali, jadi simpan dalam sistem anda.
- 3Hantar 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": ...}.
| Kaedah | Laluan | Skop | Fungsi |
|---|---|---|---|
| GET | /api/v1/news/digest | news | Jumlah liputan, sentimen dan media teratas bagi satu tempoh. |
| GET | /api/v1/news/articles | news | Cari liputan berita. |
| GET | /api/v1/news/outlets | news | Media yang membuat liputan tentang syarikat anda. |
| GET | /api/v1/crisis/incidents | crisis | Insiden krisis dan artikel kritikal. |
| GET | /api/v1/approvals | approvals | Siaran media dan catatan blog yang menunggu pemilik kunci, serta yang diminta pemilik kunci untuk diluluskan. |
| GET | /api/v1/press-releases | content | Senaraikan siaran media. |
| GET | /api/v1/press-releases/{id} | content | Satu siaran media dengan perenggan pendahuluan dan teksnya. |
| GET | /api/v1/blog-posts | content | Senaraikan catatan blog. |
| GET | /api/v1/blog-posts/{id} | content | Satu catatan blog dengan teksnya. |
| POST | /api/v1/approvals/press-releases/{id} | approvals | Luluskan atau tolak siaran media yang menunggu pemilik kunci. |
| POST | /api/v1/approvals/blog-posts/{id} | approvals | Luluskan 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": ...}}.
| Kod | Status | Maksud |
|---|---|---|
| invalid_key | 401 | Kunci tiada, tidak sah formatnya atau telah dibatalkan. |
| expired | 401 | Kunci telah tamat tempoh. Cipta atau putar kunci. |
| ip_denied | 403 | Kunci dihadkan kepada alamat IP lain. |
| plan_required | 403 | Ruang kerja tidak menggunakan pelan Team atau ke atas. |
| access_required | 403 | Akses API belum diluluskan untuk ruang kerja ini. |
| suspended | 403 | Akses API untuk ruang kerja ini digantung. |
| scope_denied | 403 | Kunci tidak mempunyai skop yang diperlukan oleh titik akhir ini. |
| personal_key_required | 403 | Hanya kunci peribadi boleh meluluskan atau menolak. |
| denied | 403 | Peranan pemilik kunci tidak membenarkan tindakan ini. |
| unknown_endpoint | 404 | Titik akhir tersebut tidak wujud. |
| comment_required | 400 | Sebab diperlukan untuk menolak. |
| confirmation_required | 409 | Amaran memerlukan pengesahan. Hantar semula dengan force ditetapkan kepada true. |
| rate_limited | 429 | Had seminit telah dilepasi. |
| daily_limit | 429 | Had 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
- Tambah destinasi webhook generik dan hidupkan permintaan kelulusan.
- Apabila webhook kelulusan tiba, sahkan tandatangan dan baca data.kind serta data.id.
- Paparkan permintaan dalam sistem kelulusan anda. Baca teks dengan GET press-releases/{id} atau blog-posts/{id} jika perlu.
- 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
- Cipta kunci ruang kerja dengan skop news dan crisis.
- Panggil news/digest mengikut jadual, contohnya setiap pagi.
- Panggil crisis/incidents lebih kerap jika anda mahukan makluman sendiri. Pantau pengepala X-RateLimit supaya kekal dalam had anda.
Makluman dalam sembang anda
- Untuk Teams dan Google Chat, cipta URL webhook bilik itu dan tambahkannya sebagai destinasi di Tetapan > API > Webhook.
- Untuk JANDI, Dooray! dan Chatwork, sambungkan daripada Tetapan > Integrasi.
- 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