ข้ามไปยังเนื้อหา
MarcommAI
สำหรับนักพัฒนา

เชื่อมต่อระบบของคุณกับ Marcomm AI

อ่านสรุปข่าว ข่าวสำคัญ และรายการรออนุมัติจากระบบของคุณเอง แล้วอนุมัติหรือปฏิเสธจากเครื่องมืออนุมัติของคุณ API ใช้งานได้บนแพ็กเกจ Team ขึ้นไป หลังผ่านการตรวจสอบสั้นๆ

เริ่มต้นใช้งาน

  1. 1
    ยื่นขอสิทธิ์เข้าถึง

    อธิบายระบบของคุณและเลือกข้อมูลที่ต้องการ เราตรวจสอบคำขอทีละรายการ

  2. 2
    สร้างคีย์

    หลังได้รับอนุมัติ ให้สร้างคีย์ที่ ตั้งค่า, API คีย์จะแสดงเพียงครั้งเดียว จึงควรเก็บไว้ในระบบของคุณ

  3. 3
    ส่งคำขอ

    ส่งคีย์ในส่วนหัว Authorization แล้วเรียกใช้เอนด์พอยต์ใดก็ได้ด้านล่าง

ตัวอย่างคำขอ

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

การยืนยันตัวตน

ส่งคีย์เป็นโทเค็น Bearer ในคำขอทุกครั้ง คีย์ส่วนบุคคลทำงานในนามของผู้สร้างคีย์ จึงอ่านรายการอนุมัติและตัดสินใจในนามบุคคลนั้นได้ ส่วนคีย์ของเวิร์กสเปซสร้างโดยผู้ดูแลและอ่านได้อย่างเดียว คีย์ตั้งวันหมดอายุ จำกัด IP แอดเดรส และหมุนเวียนได้ โดยคีย์เดิมจะยังใช้งานได้อีก 24 ชั่วโมงหลังการหมุนเวียน

ขอบเขตสิทธิ์

คีย์แต่ละตัวมีเฉพาะขอบเขตที่คำขอของคุณได้รับอนุมัติ

news
สรุปข่าว บทความ และสำนักข่าว
crisis
ข่าวสำคัญและเหตุการณ์วิกฤต
approvals
รายการรออนุมัติ รวมถึงการอนุมัติหรือปฏิเสธด้วยคีย์ส่วนบุคคล
content
การอ่านข่าวประชาสัมพันธ์และบทความบล็อก

เอนด์พอยต์

เส้นทางขึ้นต้นด้วย /api/v1 เอนด์พอยต์สำหรับอ่านใช้ GET และรับพารามิเตอร์ของคำค้น การตอบกลับเป็น JSON รูปแบบ {"data": ...}

เมธอดเส้นทางขอบเขตหน้าที่
GET/api/v1/news/digestnewsปริมาณข่าว ความรู้สึก และสำนักข่าวอันดับต้นในช่วงเวลาที่เลือก
GET/api/v1/news/articlesnewsค้นหาข่าวที่มีการกล่าวถึง
GET/api/v1/news/outletsnewsสำนักข่าวที่รายงานเกี่ยวกับบริษัทของคุณ
GET/api/v1/crisis/incidentscrisisเหตุการณ์วิกฤตและบทความข่าวสำคัญ
GET/api/v1/approvalsapprovalsข่าวประชาสัมพันธ์และบทความบล็อกที่รอเจ้าของคีย์ และรายการที่เจ้าของคีย์ขอให้อนุมัติ
GET/api/v1/press-releasescontentรายการข่าวประชาสัมพันธ์
GET/api/v1/press-releases/{id}contentข่าวประชาสัมพันธ์หนึ่งฉบับพร้อมย่อหน้านำและเนื้อหา
GET/api/v1/blog-postscontentรายการบทความบล็อก
GET/api/v1/blog-posts/{id}contentบทความบล็อกหนึ่งบทความพร้อมเนื้อหา
POST/api/v1/approvals/press-releases/{id}approvalsอนุมัติหรือปฏิเสธข่าวประชาสัมพันธ์ที่รอเจ้าของคีย์
POST/api/v1/approvals/blog-posts/{id}approvalsอนุมัติหรือปฏิเสธบทความบล็อกที่รอเจ้าของคีย์

อนุมัติและปฏิเสธ

ส่ง {"decision": "approve"} หรือ {"decision": "reject", "comment": "..."} ไปยังรายการนั้น การปฏิเสธต้องระบุความคิดเห็น การตัดสินใจใช้กฎเดียวกับในแอปและ Slack และบันทึกในชื่อเจ้าของคีย์ หากข้อความมีวลีที่ต้องยืนยัน คุณจะได้รับ 409 confirmation_required พร้อมคำเตือน และส่งคำขอซ้ำได้โดยใส่ "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."}'

ขีดจำกัดอัตราการเรียก

ขีดจำกัดกำหนดต่อเวิร์กสเปซ ต่อนาทีและต่อวัน (UTC) การตอบกลับมีส่วนหัวตามด้านล่างทุกครั้ง เมื่อเกินขีดจำกัดคุณจะได้รับ 429 พร้อม Retry-After หากต้องการเพิ่มขีดจำกัด ให้ขอเพิ่มได้ที่ ตั้งค่า, API ทีมงานของเราจะตรวจสอบ

X-RateLimit-Limit
จำนวนคำขอที่อนุญาตต่อนาที
X-RateLimit-Remaining
จำนวนคำขอที่เหลือในนาทีปัจจุบัน
X-RateLimit-Reset
เวลาแบบ Unix ที่หน้าต่างนาทีรีเซ็ต
X-RateLimit-Day-Limit
จำนวนคำขอที่อนุญาตต่อวัน
X-RateLimit-Day-Remaining
จำนวนคำขอที่เหลือของวันนี้
Retry-After
จำนวนวินาทีที่ต้องรอก่อนลองใหม่ ใช้เฉพาะ 429

ข้อผิดพลาด

ข้อผิดพลาดจะส่งกลับเป็น JSON รูปแบบ {"error": {"code": ..., "message": ...}}

รหัสสถานะความหมาย
invalid_key401ไม่มีคีย์ คีย์ผิดรูปแบบ หรือถูกเพิกถอนแล้ว
expired401คีย์หมดอายุแล้ว โปรดสร้างคีย์ใหม่หรือหมุนเวียนคีย์
ip_denied403คีย์ถูกจำกัดให้ใช้จาก IP แอดเดรสอื่น
plan_required403เวิร์กสเปซไม่ได้อยู่บนแพ็กเกจ Team ขึ้นไป
access_required403เวิร์กสเปซนี้ยังไม่ได้รับอนุมัติให้เข้าถึง API
suspended403การเข้าถึง API ของเวิร์กสเปซนี้ถูกระงับ
scope_denied403คีย์ไม่มีขอบเขตสิทธิ์ที่เอนด์พอยต์นี้ต้องใช้
personal_key_required403อนุมัติหรือปฏิเสธได้เฉพาะด้วยคีย์ส่วนบุคคล
denied403บทบาทของเจ้าของคีย์ไม่อนุญาตให้ทำเช่นนี้
unknown_endpoint404ไม่มีเอนด์พอยต์นี้
comment_required400ต้องระบุเหตุผลในการปฏิเสธ
confirmation_required409คำเตือนต้องได้รับการยืนยัน ส่งซ้ำโดยตั้งค่า force เป็น true
rate_limited429เกินขีดจำกัดต่อนาที
daily_limit429ถึงขีดจำกัดต่อวันแล้ว

Webhook

การแจ้งเตือน คำขออนุมัติ และสรุปข่าวตอนเช้ายังส่งไปยังระบบของคุณได้ด้วย เพิ่มปลายทางที่ ตั้งค่า, API, Webhook แต่ละคำขอเป็น JSON ที่มีฟิลด์ event (alert, approval หรือ briefing), workspace, title, text, url, data และ sentAt คำขออนุมัติมี data.kind (press_release, blog หรือ event) และ data.id ซึ่งใช้อ่านและตัดสินใจผ่าน API ได้

คำขอแต่ละรายการมีลายเซ็น คำนวณ HMAC-SHA256 ของเนื้อหาคำขอดิบด้วยคีย์ลับสำหรับลายเซ็นของคุณ แล้วเทียบกับส่วนหัว X-Marcomm-Signature ซึ่งอยู่ในรูป sha256=<hex> ปฏิเสธคำขอที่ไม่ตรงกัน

การตรวจสอบ Webhook ใน 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);
}

คู่มือการเชื่อมต่อ

อนุมัติจากระบบอนุมัติของคุณ

  1. เพิ่มปลายทาง Webhook แบบทั่วไปและเปิดคำขออนุมัติ
  2. เมื่อ Webhook อนุมัติมาถึง ให้ตรวจสอบลายเซ็นและอ่าน data.kind กับ data.id
  3. แสดงคำขอในระบบอนุมัติของคุณ หากต้องการอ่านเนื้อหา ให้เรียก GET press-releases/{id} หรือ blog-posts/{id}
  4. ส่งการตัดสินใจด้วยคีย์ส่วนบุคคลของผู้ที่ตัดสินใจ กิจกรรมและการส่งอีเมลจะตัดสินในแอปผ่านลิงก์ในข้อความ

ส่งสรุปข่าวเข้าแดชบอร์ดของคุณ

  1. สร้างคีย์ของเวิร์กสเปซที่มีขอบเขต news และ crisis
  2. เรียก news/digest ตามกำหนดเวลา เช่น ทุกเช้า
  3. หากต้องการระบบแจ้งเตือนของคุณเอง ให้เรียก crisis/incidents ถี่ขึ้น และดูส่วนหัว X-RateLimit เพื่อให้อยู่ในขีดจำกัด

การแจ้งเตือนในแชตของคุณ

  1. สำหรับ Teams และ Google Chat ให้สร้าง URL Webhook ของห้องแล้วเพิ่มเป็นปลายทางที่ ตั้งค่า, API, Webhook
  2. สำหรับ JANDI, Dooray! และ Chatwork ให้เชื่อมต่อที่ ตั้งค่า, การเชื่อมต่อ
  3. เลือกว่าแต่ละปลายทางจะรับการแจ้งเตือน คำขออนุมัติ และสรุปข่าวตอนเช้าอย่างใด แล้วส่งข้อความทดสอบ

พร้อมเชื่อมต่อแล้วหรือยัง

เจ้าของหรือผู้ดูแลเวิร์กสเปซยื่นคำขอได้ที่ ตั้งค่า, API คุณจะได้รับแจ้งทางอีเมลและในแอปเมื่อตรวจสอบเสร็จ

เปิดการตั้งค่า API