---
title: HTTP API
description: HTTP API ของ LINE Agent SDK สำหรับโปรแกรมที่ไม่ใช้ MCP สร้างการเชื่อมต่อ LINE ดูว่าแต่ละขั้นเป็นตาใคร ส่งข้อความเมื่อเผยแพร่ เครื่องมือ AI ไม่แตะข้อมูลรับรอง
url: https://agentlab.cresclab.com/docs/th/line/api
language: th
updated: 2026-10-24
---

# HTTP API

HTTP API ของ LINE Agent SDK สำหรับโปรแกรมที่ไม่ใช้ MCP สร้างการเชื่อมต่อ LINE ดูว่าแต่ละขั้นเป็นตาใคร ส่งข้อความเมื่อเผยแพร่ เครื่องมือ AI ไม่แตะข้อมูลรับรอง

## URL หลัก

API อยู่ใต้บริการที่คุณรันเอง และทุกพาธขึ้นต้นด้วย `/api`:

```text
https://line-oa-mcp--<องค์กร>.hosting.agentlab.run/api
```

วิธีรันดูที่[รัน LINE OA MCP บน Agent Lab](https://agentlab.cresclab.com/docs/th/line/quickstart.md)

> [!NOTE] ใช้ MCP ง่ายกว่า
> เครื่องมือ AI ที่รองรับ MCP (Claude Code, Codex, Cursor) ใช้ [LINE OA MCP](https://agentlab.cresclab.com/docs/th/line/mcp-tools.md) ได้เลย เครื่องมือทำงานเหมือน API นี้ และบริการที่รันอยู่ยังให้คำอธิบายสำหรับ AI ที่ `/agent.md` ด้วย

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

ทุกคำขอไปที่ `/api` ต้องมี Agent token ลงชื่อเข้าใช้แผงควบคุมด้วย Google แล้วสร้างในหน้า **Agent token** (`/tokens`):

```http
Authorization: Bearer <Agent token>
```

ถ้าไม่มี ไม่ถูกต้อง หรือถูกเพิกถอนแล้วจะได้ `401` โทเค็นแสดงเพียงครั้งเดียว เลิกใช้เมื่อไรให้เพิกถอนในหน้าเดียวกัน

> [!WARNING] อย่าวางโทเค็นในแชต
> ให้เจ้าของใส่โทเค็นในตัวแปรสภาพแวดล้อมของเครื่องมือ AI (เช่น `LINE_AGENT_SDK_TOKEN`) แทนการวางในบทสนทนา Channel Secret ก็กรอกในหน้าของบริการเท่านั้น

## 1. สร้างการเชื่อมต่อ

| เมธอดและพาธ                 | ใช้ทำอะไร                                                                                          |
| --------------------------- | -------------------------------------------------------------------------------------------------- |
| `POST /api/connections`     | สร้างการเชื่อมต่อกับบัญชีทางการ LINE ที่มีอยู่ คืนค่าการเชื่อมต่อพร้อม `setupUrl` ให้ส่งต่อให้คน   |
| `GET /api/connections`      | แสดงการเชื่อมต่อทั้งหมด                                                                            |
| `GET /api/connections/{id}` | อ่านสถานะปัจจุบันของการเชื่อมต่อ ทุกครั้งที่อ่านจะตรวจด้วยว่าคนทำขั้นตอนฝั่ง LINE เสร็จแล้วหรือยัง |

```http
POST /api/connections
Content-Type: application/json

{ "workspace": "acme", "label": "บัญชีซัพพอร์ต" }
```

ทั้งสองฟิลด์ไม่บังคับ ส่ง `setupUrl` ที่ได้ให้คน Channel ID และ Channel Secret กรอกในหน้านั้นเท่านั้น

## 2. รอให้แต่ละขั้นเสร็จ

`nextStep` ของการเชื่อมต่อบอกว่าตอนนี้เป็นตาของใคร ต้องทำอะไร และนับว่าเสร็จเมื่อไร:

```json
{
  "id": "conn_9f3a1c2b4d5e",
  "state": "webhook_active",
  "live": false,
  "nextStep": {
    "key": "webhook_active",
    "title": "打開「Use webhook」",
    "actor": "human",
    "status": "current",
    "doneWhen": "LINE 回報 webhook active = true（每 2 秒自動偵測，不用回來按）",
    "how": "LINE Developers › Messaging API › Webhook settings › Use webhook 打開。",
    "url": "https://developers.line.biz/console/"
  }
}
```

- เมื่อ `actor` เป็น `human` ให้บอก `title`, `how` และ `url` แก่คน แล้วอ่านการเชื่อมต่อต่อไป ขั้นนั้นจะเสร็จเอง ไม่ต้องถามว่าเสร็จหรือยัง
- เมื่อ `actor` เป็น `ops` ผู้ดูแลบริการกำลังดำเนินการ ให้บอกคนว่ากำลังดำเนินการ
- เมื่อ `actor` เป็น `agent` บริการทำเอง
- เมื่อ `status` เป็น `error` เหตุผลอยู่ใน `note`

แนะนำให้อ่านทุก 2 ถึง 5 วินาที เมื่อ `live` เป็น `true` แสดงว่าข้อความ LINE แรกส่งถึงมือถือของคนแล้ว ชื่อและคำอธิบายของขั้นตอนเป็นภาษาจีนตัวเต็ม

### ขั้นตอน

| `key`            | ใครทำ     | นับว่าเสร็จเมื่อ                                                                 |
| ---------------- | --------- | -------------------------------------------------------------------------------- |
| `credentials`    | เจ้าของ   | ออก token ด้วย Channel ID และ Channel Secret ได้                                 |
| `health`         | อัตโนมัติ | อ่านข้อมูลบัญชี โหมดแชต webhook โควตา และจำนวนเพื่อนแล้ว โดยไม่เปลี่ยนการตั้งค่า |
| `mode`           | เจ้าของ   | เลือกส่งอย่างเดียว ส่งต่อ หรือรับช่วงตรง ในหน้าของบริการ                         |
| `webhook_set`    | อัตโนมัติ | ตั้ง URL ของ webhook เป็นบริการนี้และอ่านกลับมายืนยันแล้ว                        |
| `webhook_active` | เจ้าของ   | เปิด "Use webhook" ใน LINE Developers และตรวจจับได้อัตโนมัติ                     |
| `auto_reply`     | เจ้าของ   | ปิดข้อความตอบกลับอัตโนมัติใน OA Manager และยืนยันในหน้าของบริการ                 |
| `pair`           | เจ้าของ   | เพิ่มเพื่อนแล้วส่ง `pairingCode`                                                 |
| `first_message`  | อัตโนมัติ | การตอบกลับข้อความจับคู่ได้รับการยอมรับ                                           |

ถ้าเลือกส่งอย่างเดียว `webhook_set`, `webhook_active` และ `auto_reply` จะเป็น `skipped` และ `pair` จะเปลี่ยนเป็นการวาง userId สำหรับทดสอบ ถ้าเลือกส่งต่อ จะข้าม `auto_reply` และการตั้งค่าของระบบเดิมคงเดิม

## 3. ส่งข้อความ

| เมธอดและพาธ                           | ใช้ทำอะไร                          |
| ------------------------------------- | ---------------------------------- |
| `POST /api/connections/{id}/messages` | พุชข้อความถึงผู้ทดสอบที่จับคู่แล้ว |

```http
POST /api/connections/conn_9f3a1c2b4d5e/messages
Content-Type: application/json

{ "text": "คำสั่งซื้อของคุณจัดส่งแล้ว" }
```

```json
{ "ok": true, "to": "paired test user" }
```

ถ้าการเชื่อมต่อยังไม่เผยแพร่ จะได้ `409` พร้อม `nextStep`

> [!NOTE] การพุชใช้โควตา
> ข้อความพุชนับรวมโควตารายเดือนของบัญชีทางการ แต่การตอบกลับไม่นับ เมื่อผู้ทดสอบส่งข้อความถึงบัญชี Agent จะตอบด้วยการตอบกลับ และเปลี่ยนเป็นพุชก็ต่อเมื่อ reply token หมดอายุ

## แซนด์บ็อกซ์

ถ้ายังไม่มีบัญชีทางการ ลองด้วยแซนด์บ็อกซ์ที่ผู้ดูแลเตรียมไว้:

| เมธอดและพาธ             | ใช้ทำอะไร                                                                                          |
| ----------------------- | -------------------------------------------------------------------------------------------------- |
| `POST /api/sandbox`     | รับรหัส join คืนค่า `joinText` (เช่น `join blue-fox-42`) และ `account.addFriendUrl` ของแซนด์บ็อกซ์ |
| `GET /api/sandbox/{id}` | อ่านสถานะแซนด์บ็อกซ์ ถ้า `live` เป็น `true` แสดงว่าข้อความแรกส่งถึงแล้ว                            |

ส่ง `addFriendUrl` และ `joinText` ให้คน เมื่อเพิ่มเพื่อนและส่งบรรทัดนั้น มือถือจะผูกกับเวิร์กสเปซ แซนด์บ็อกซ์ส่งได้เฉพาะมือถือที่ join แล้ว และความเป็นเพื่อนไม่ย้ายไปบัญชีจริง

## ออบเจ็กต์การเชื่อมต่อ

| ฟิลด์         | ความหมาย                                                                                           |
| ------------- | -------------------------------------------------------------------------------------------------- |
| `id`          | ID ของการเชื่อมต่อ ใช้ในการเรียกครั้งต่อไปทั้งหมด                                                  |
| `state`       | `key` ของขั้นปัจจุบัน หรือ `live` เมื่อทุกอย่างเสร็จ                                               |
| `live`        | เป็น `true` เมื่อข้อความแรกส่งถึงแล้ว                                                              |
| `mode`        | `push_only`, `relay`, `direct` หรือ `null` ถ้ายังไม่เลือก                                          |
| `account`     | `basicId`, `displayName` และ `addFriendUrl` ของบัญชีทางการ เป็น `null` จนกว่าจะตรวจสุขภาพเสร็จ     |
| `pairingCode` | รหัสจับคู่ที่ส่งจากมือถือ เช่น `AL-7Q4K`                                                           |
| `tester`      | `userId` ของผู้ทดสอบที่จับคู่แล้ว                                                                  |
| `webhookUrl`  | URL ของ webhook สำหรับการเชื่อมต่อนี้ บริการลงทะเบียนกับ LINE เอง                                  |
| `setupUrl`    | หน้าแผงควบคุมที่ส่งให้คน                                                                           |
| `steps`       | ทุกขั้นตอน แต่ละขั้นมี `key`, `title`, `actor`, `status`, `doneWhen` และอาจมี `how`, `url`, `note` |
| `nextStep`    | ขั้นที่ต้องทำตอนนี้ เป็น `null` เมื่อทุกอย่างเสร็จ                                                 |

## ข้อผิดพลาด

| สถานะ | ความหมาย                                             | ต้องทำอย่างไร                              |
| ----- | ---------------------------------------------------- | ------------------------------------------ |
| `400` | คำขอไม่ถูกต้อง เช่น `text` ว่าง เหตุผลอยู่ใน `error` | แก้แล้วส่งใหม่                             |
| `401` | ไม่มีโทเค็น โทเค็นผิด หรือถูกเพิกถอนแล้ว             | ตรวจ `Authorization: Bearer <Agent token>` |
| `404` | ไม่พบการเชื่อมต่อหรือแซนด์บ็อกซ์นี้                  | ตรวจ `id`                                  |
| `409` | การเชื่อมต่อยังไม่เผยแพร่ จึงส่งไม่ได้               | ทำต่อตาม `nextStep` ที่ได้รับ              |

## Webhook

`POST /hooks/line/{id}` สำหรับให้แพลตฟอร์ม LINE เรียก ไม่ต้องใช้ token แต่ทุกคำขอต้องผ่านการตรวจ `x-line-signature` ไม่เช่นนั้นจะได้ `401` บริการลงทะเบียน URL นี้กับ LINE เองในขั้น `webhook_set` ไม่ต้องวางด้วยมือ
