Skip to main content

API Client และ API Key

ภาพรวม

Domain นี้เปิดช่องทางให้ ระบบภายนอกของลูกค้าเรียกใช้ API ของ LINE Management ได้ โดยไม่ต้องเข้าสู่ระบบด้วยบัญชีผู้ใช้ โครงสร้างแบ่งเป็นสองชั้น

  • api_client — แอปพลิเคชันผู้เรียกในระดับแพลตฟอร์ม ถือ client id และ client secret
  • api_key — คีย์ที่ผูกแอปพลิเคชันนั้นเข้ากับ LINE OA และองค์กรใดองค์กรหนึ่งโดยเฉพาะ

การกระทำที่เกิดขึ้นผ่านช่องทางนี้จะถูกทำเครื่องหมายไว้เสมอ เช่น audience.api_client_id และ audience.api_key_id รวมถึง audience_member_log.trigger_type ที่มีค่าเป็น api ทำให้ตรวจสอบย้อนหลังได้ว่าข้อมูลชุดไหนมาจากระบบภายนอก

โครงสร้างข้อมูลหลัก

api_client

  • name, description, client_id, client_secret
  • status ชนิด CommonStatus (ค่าเริ่มต้น active) และ soft delete ผ่าน deleted_date
  • index (client_id, client_secret, status) ออกแบบมาให้รองรับการ authenticate โดยตรง

api_key

  • title และ key
  • ขอบเขตการใช้งาน: api_client_id, line_oa_id และ organization_id ทั้งสามตัวเก็บเป็นคอลัมน์ธรรมดา ไม่ได้ประกาศเป็น FK ใน Prisma
  • index (organization_id, line_oa_id, status) รองรับการดึงคีย์ที่ใช้งานอยู่ของแต่ละช่องทาง

ไฟล์ที่เกี่ยวข้อง

  • prisma/schema.prisma:819 — model ApiClient
  • prisma/schema.prisma:837 — model ApiKey
  • prisma/schema.prisma:438 — คอลัมน์ audience.api_client_id และ audience.api_key_id
  • seed-data/13.api_client.sql, seed-data/14.api_key.sql — ข้อมูลตั้งต้นคู่ mock สำหรับการทดสอบ
  • schema-dumps/2026-07-24/schema.sql:864, :903

จุดเชื่อมต่อกับ Service อื่น

  • cms-api-go มีโมดูล api-key สำหรับออกและเพิกถอนคีย์ให้ลูกค้าแต่ละราย
  • client-api-go และ cms-api-go ใช้ middleware ตรวจสอบ API key ก่อนอนุญาตให้เรียก endpoint สาธารณะ ตัวอย่างการใช้งานจริงคือระบบ CRM ภายนอกยิงข้อมูลเข้ามาเพื่อเพิ่มสมาชิกเข้ากลุ่มเป้าหมาย
  • เชื่อมโยงกับ กลุ่มเป้าหมาย และ ช่องทาง LINE OA