Kết nối hệ thống của bạn với Marcomm AI
Đọc bản tin tổng hợp, tin nghiêm trọng và các mục đang chờ phê duyệt từ hệ thống của bạn, rồi phê duyệt hoặc từ chối ngay trong công cụ phê duyệt riêng. API có sẵn từ gói Team trở lên, sau một bước xem xét ngắn.
Bắt đầu
- 1Đăng ký quyền truy cập
Mô tả hệ thống của bạn và chọn dữ liệu cần dùng. Chúng tôi xem xét từng đơn đăng ký.
- 2Tạo khóa
Sau khi được duyệt, hãy tạo khóa tại Cài đặt, API. Khóa chỉ hiển thị một lần, vì vậy hãy lưu vào hệ thống của bạn.
- 3Gửi yêu cầu
Gửi khóa trong header Authorization rồi gọi bất kỳ endpoint nào bên dưới.
Yêu cầu mẫu
curl https://app.marcomm.works/api/v1/news/digest?days=7 \
-H "Authorization: Bearer mc_live_..."Xác thực
Gửi khóa dưới dạng token Bearer trong mỗi yêu cầu. Khóa cá nhân hoạt động với tư cách người tạo ra nó, nên có thể đọc và quyết định các mục phê duyệt nhân danh người đó. Khóa không gian làm việc do quản trị viên tạo và chỉ có quyền đọc. Khóa có thể hết hạn, giới hạn theo địa chỉ IP và xoay vòng: sau khi xoay vòng, khóa cũ vẫn dùng được thêm 24 giờ.
Phạm vi quyền
Mỗi khóa chỉ mang các phạm vi mà đơn đăng ký của bạn được duyệt.
- news
- Bản tin tổng hợp, bài viết và cơ quan báo chí.
- crisis
- Tin nghiêm trọng và sự cố khủng hoảng.
- approvals
- Các mục chờ phê duyệt, cùng việc phê duyệt hoặc từ chối chúng bằng khóa cá nhân.
- content
- Đọc thông cáo báo chí và bài blog.
Endpoint
Đường dẫn bắt đầu bằng /api/v1. Endpoint đọc dùng GET và nhận tham số truy vấn. Phản hồi là JSON có dạng {"data": ...}.
| Phương thức | Đường dẫn | Phạm vi | Chức năng |
|---|---|---|---|
| GET | /api/v1/news/digest | news | Lượng tin, sắc thái và các cơ quan báo chí hàng đầu trong một giai đoạn. |
| GET | /api/v1/news/articles | news | Tìm kiếm tin tức. |
| GET | /api/v1/news/outlets | news | Các cơ quan báo chí đưa tin về công ty của bạn. |
| GET | /api/v1/crisis/incidents | crisis | Sự cố khủng hoảng và các bài báo nghiêm trọng. |
| GET | /api/v1/approvals | approvals | Thông cáo báo chí và bài blog đang chờ chủ khóa, cùng những mục chủ khóa đã yêu cầu phê duyệt. |
| GET | /api/v1/press-releases | content | Liệt kê thông cáo báo chí. |
| GET | /api/v1/press-releases/{id} | content | Một thông cáo báo chí kèm đoạn dẫn và nội dung. |
| GET | /api/v1/blog-posts | content | Liệt kê bài blog. |
| GET | /api/v1/blog-posts/{id} | content | Một bài blog kèm nội dung. |
| POST | /api/v1/approvals/press-releases/{id} | approvals | Phê duyệt hoặc từ chối thông cáo báo chí đang chờ chủ khóa. |
| POST | /api/v1/approvals/blog-posts/{id} | approvals | Phê duyệt hoặc từ chối bài blog đang chờ chủ khóa. |
Phê duyệt và từ chối
Gửi {"decision": "approve"} hoặc {"decision": "reject", "comment": "..."} tới mục cần xử lý. Từ chối cần có nhận xét. Quyết định tuân theo cùng quy tắc như trong ứng dụng và Slack, và được ghi nhận dưới tên chủ khóa. Khi nội dung có cụm từ cần xác nhận, bạn sẽ nhận 409 confirmation_required kèm các cảnh báo, và có thể gửi lại yêu cầu với "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."}'Giới hạn tốc độ
Giới hạn được đặt theo từng không gian làm việc, theo phút và theo ngày (UTC). Các phản hồi đều kèm các header bên dưới. Khi vượt giới hạn, bạn nhận 429 cùng Retry-After. Để tăng giới hạn, hãy gửi yêu cầu tại Cài đặt, API. Đội ngũ của chúng tôi sẽ xem xét.
- X-RateLimit-Limit
- Số yêu cầu được phép mỗi phút.
- X-RateLimit-Remaining
- Số yêu cầu còn lại trong phút hiện tại.
- X-RateLimit-Reset
- Thời điểm Unix khi cửa sổ phút được đặt lại.
- X-RateLimit-Day-Limit
- Số yêu cầu được phép mỗi ngày.
- X-RateLimit-Day-Remaining
- Số yêu cầu còn lại trong hôm nay.
- Retry-After
- Số giây cần chờ trước khi thử lại. Chỉ có với 429.
Lỗi
Lỗi được trả về dưới dạng JSON có dạng {"error": {"code": ..., "message": ...}}.
| Mã | Trạng thái | Ý nghĩa |
|---|---|---|
| invalid_key | 401 | Khóa bị thiếu, sai định dạng hoặc đã bị thu hồi. |
| expired | 401 | Khóa đã hết hạn. Hãy tạo khóa mới hoặc xoay vòng khóa. |
| ip_denied | 403 | Khóa bị giới hạn ở các địa chỉ IP khác. |
| plan_required | 403 | Không gian làm việc không thuộc gói Team trở lên. |
| access_required | 403 | Quyền truy cập API chưa được duyệt cho không gian làm việc này. |
| suspended | 403 | Quyền truy cập API của không gian làm việc này đang bị tạm ngừng. |
| scope_denied | 403 | Khóa không có phạm vi mà endpoint này yêu cầu. |
| personal_key_required | 403 | Chỉ khóa cá nhân mới có thể phê duyệt hoặc từ chối. |
| denied | 403 | Vai trò của chủ khóa không cho phép thao tác này. |
| unknown_endpoint | 404 | Không có endpoint như vậy. |
| comment_required | 400 | Cần có lý do để từ chối. |
| confirmation_required | 409 | Các cảnh báo cần được xác nhận. Gửi lại với force đặt là true. |
| rate_limited | 429 | Đã vượt giới hạn mỗi phút. |
| daily_limit | 429 | Đã đạt giới hạn mỗi ngày. |
Webhook
Cảnh báo, yêu cầu phê duyệt và bản tin buổi sáng cũng có thể được đẩy tới hệ thống của bạn. Thêm đích nhận tại Cài đặt, API, Webhook. Mỗi yêu cầu là JSON với các trường event (alert, approval hoặc briefing), workspace, title, text, url, data và sentAt. Yêu cầu phê duyệt mang data.kind (press_release, blog hoặc event) và data.id, dùng để đọc và quyết định qua API.
Các yêu cầu đều được ký. Hãy tính HMAC-SHA256 của nội dung thô của yêu cầu bằng khóa bí mật ký của bạn rồi so sánh với header X-Marcomm-Signature có dạng sha256=<hex>. Từ chối những yêu cầu không khớp.
Xác minh Webhook trong 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);
}Hướng dẫn kết nối
Phê duyệt từ hệ thống phê duyệt của bạn
- Thêm một đích Webhook chung và bật yêu cầu phê duyệt.
- Khi Webhook phê duyệt tới, hãy xác minh chữ ký và đọc data.kind cùng data.id.
- Hiển thị yêu cầu trong hệ thống phê duyệt của bạn. Nếu cần nội dung, hãy đọc bằng GET press-releases/{id} hoặc blog-posts/{id}.
- Gửi quyết định bằng khóa cá nhân của người quyết định. Sự kiện và việc gửi email được quyết định trong ứng dụng qua liên kết trong tin nhắn.
Đưa bản tin tổng hợp vào bảng điều khiển của bạn
- Tạo khóa không gian làm việc với các phạm vi news và crisis.
- Gọi news/digest theo lịch, chẳng hạn mỗi sáng.
- Nếu muốn cảnh báo riêng, hãy gọi crisis/incidents thường xuyên hơn. Theo dõi các header X-RateLimit để không vượt giới hạn.
Cảnh báo trong ứng dụng chat của bạn
- Với Teams và Google Chat, hãy tạo URL Webhook của phòng rồi thêm làm đích nhận tại Cài đặt, API, Webhook.
- Với JANDI, Dooray! và Chatwork, hãy kết nối tại Cài đặt, Tích hợp.
- Chọn đích nhận sẽ nhận loại nào trong cảnh báo, yêu cầu phê duyệt và bản tin buổi sáng, rồi gửi tin nhắn thử.
Sẵn sàng kết nối?
Chủ sở hữu hoặc quản trị viên không gian làm việc gửi đăng ký tại Cài đặt, API. Bạn sẽ nhận thông báo qua email và trong ứng dụng khi quá trình xem xét hoàn tất.
Mở cài đặt API