npm package: @klongchu/n8n-nodes-budhosp-moph-notify
Description: BUDHOSP MOPH Notify Node for n8n
Author: Klongchu Dev
Latest version: 1.0.3

# @klongchu/n8n-nodes-budhosp-moph-notify

![n8n](https://img.shields.io/badge/n8n-community-FE47A1)
![npm](https://img.shields.io/npm/v/@klongchu/n8n-nodes-budhosp-moph-notify)
![License](https://img.shields.io/badge/license-MIT-blue.svg)

Node สำหรับ n8n ที่ใช้ในการส่งข้อความแจ้งเตือนผ่านระบบ BUDHOSP Moph Notify API

## 🌟 ความสามารถ

- 🚨 ส่งข้อความแจ้งเตือนผ่าน BUDHOSP Moph Notify API
- 🔐 รองรับการ Authentication ด้วย Bearer Token
- � รองรับการส่งข้อมูลด้วย Client Key และ Secret Key
- ⚡ ตรวจสอบความถูกต้องของข้อมูลก่อนส่ง
- 🛡️ รองรับ CSRF Token เพื่อความปลอดภัย

## 📦 การติดตั้ง

### ติดตั้งผ่าน npm

```bash
npm install @klongchu/n8n-nodes-budhosp-moph-notify
```

### ติดตั้งใน n8n Cloud/Desktop

1. เข้าไปที่ **Settings** > **Community Nodes**
2. ใส่ `@klongchu/n8n-nodes-budhosp-moph-notify` ในช่อง **Package to install**
3. คลิก **Install**
4. รีสตาร์ท n8n

### ติดตั้งจาก Source Code

```bash
# Clone repository
git clone https://github.com/klongchu/n8n-nodes-budhosp-moph-notify.git
cd n8n-nodes-budhosp-moph-notify

# Install dependencies
npm install

# Build
npm run build

# Link for local development
npm link
```

## 🚀 การใช้งาน

### 1. การตั้งค่า Credentials

1. ไปที่ **Credentials** > **Create New**
2. เลือก **BUDHOSP Moph API**
3. กรอกข้อมูลต่อไปนี้:
   - **Bearer Token**: Token ที่ได้รับจากระบบ BUDHOSP
   - **API Base URL**: `https://api-gateway.budhosp.com` (default)
   - **CSRF Token**: Token สำหรับความปลอดภัย (ถ้าจำเป็น)
4. **Test** และ **Save** credentials

### 2. การใช้งาน Node

1. เพิ่ม **BUDHOSP Moph Notify** node ใน workflow
2. เลือก **Operation**: `Send Notify`
3. เลือก **Credentials** ที่สร้างไว้
4. กรอกข้อมูล:
   - **Client Key**: Client Key สำหรับการยืนยันตัวตน
   - **Secret Key**: Secret Key สำหรับการยืนยันตัวตน
   - **ข้อความแจ้งเตือน**: ข้อความที่ต้องการส่ง
   - **Alt Text (Title)**: หัวข้อหรือ Alt Text ของการแจ้งเตือน
5. Execute node

## 📖 API Reference

### Endpoint
```
POST https://api-gateway.budhosp.com/api/v1/moph/notify
```

### Headers
```
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
X-CSRF-TOKEN: {csrf_token}
```

### Request Body
```json
{
  "clientKey": "18032ec88e49e86f8a947b7e",
  "secretKey": "5BKA45QMDRE6WIVUMPIQXQXA2IQ",
  "message": "ข้อความที่จะส่งไป",
  "altText": "title"
}
```

### Response
```json
{
  "success": true,
  "response": {
    // API response data
  },
  "timestamp": "2025-06-26T14:30:00.000Z"
}
```

## 💡 ตัวอย่างการใช้งาน

### ตัวอย่าง Workflow

```json
{
  "name": "BUDHOSP Notify Workflow",
  "nodes": [
    {
      "parameters": {
        "operation": "sendNotify",
        "clientKey": "18032ec88e49e86f8a947b7e",
        "secretKey": "5BKA45QMDRE6WIVUMPIQXQXA2IQ",
        "message": "มีการแจ้งเตือนสำคัญจากระบบ BUDHOSP",
        "altText": "BUDHOSP Alert"
      },
      "name": "BUDHOSP Moph Notify",
      "type": "n8n-nodes-budhosp-moph-notify.budhospMophNotify",
      "typeVersion": 1,
      "position": [800, 300],
      "credentials": {
        "budhospMophApi": {
          "id": "1",
          "name": "BUDHOSP API"
        }
      }
    }
  ]
}
```

### การใช้งานร่วมกับ Node อื่น

```javascript
// ตัวอย่างการดึงข้อมูลจาก Database แล้วส่ง Notify
// 1. HTTP Request Node - ดึงข้อมูลผู้ป่วย
// 2. Function Node - ประมวลผลข้อมูล  
// 3. BUDHOSP Moph Notify Node - ส่งแจ้งเตือน

// ใน Function Node
const patients = $input.all();

return patients.map(patient => ({
  json: {
    clientKey: "18032ec88e49e86f8a947b7e",
    secretKey: "5BKA45QMDRE6WIVUMPIQXQXA2IQ",
    message: `แจ้งเตือน: ผู้ป่วย ${patient.json.name} มีนัดตรวจวันนี้`,
    altText: "นัดตรวจ"
  }
}));
```

## ⚠️ การตรวจสอบข้อมูล

Node จะตรวจสอบข้อมูลอัตโนมัติ:

- **Client Key**: ต้องไม่เป็นค่าว่าง
- **Secret Key**: ต้องไม่เป็นค่าว่าง
- **Message**: ต้องไม่เป็นค่าว่าง
- **Alt Text**: ต้องไม่เป็นค่าว่าง
- **Credentials**: ต้องระบุ Bearer Token

## 🛠️ การพัฒนา

### ข้อกำหนดระบบ

- Node.js >= 20.15
- n8n >= 1.99.1

### การ Build

```bash
# Install dependencies
npm install

# Development mode
npm run dev

# Build for production
npm run build

# Run linting
npm run lint

# Fix linting issues
npm run lintfix

# Format code
npm run format
```

### การทดสอบ

```bash
# Build และ test
npm run build

# ตรวจสอบ package
npm pack
```

## 🐛 การแก้ไขปัญหา

### ปัญหาที่พบบ่อย

1. **Authentication Error**
   - ตรวจสอบ Bearer Token ให้ถูกต้อง
   - ตรวจสอบว่า Token ยังไม่หมดอายุ

2. **Invalid Key Error**
   - ตรวจสอบให้แน่ใจว่า Client Key และ Secret Key ถูกต้อง
   - ตรวจสอบว่า Key ยังไม่หมดอายุ

3. **Connection Error**
   - ตรวจสอบ Base URL ให้ถูกต้อง
   - ตรวจสอบการเชื่อมต่อ Internet

### การ Debug

เปิด Debug mode ใน n8n:
```bash
export N8N_LOG_LEVEL=debug
```

## 📄 License

MIT License - ดู [LICENSE.md](LICENSE.md) สำหรับรายละเอียด

## 📞 การติดต่อ

- **GitHub**: [klongchu/n8n-nodes-budhosp-moph-notify](https://github.com/klongchu/n8n-nodes-budhosp-moph-notify)
- **Email**: klongchu@gmail.com
- **Website**: [https://budhosp.go.th](https://budhosp.go.th)

## 🔗 ลิงก์ที่เกี่ยวข้อง

- [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)
- [n8n Node Development](https://docs.n8n.io/integrations/creating-nodes/)
- [BUDHOSP Official Website](https://budhosp.go.th)