---
title: "คีย์ API | Tajo"
description: "คู่มือฉบับสมบูรณ์สำหรับการยืนยันตัวตนด้วยคีย์ API กับ Brevo"
url: https://tajo.io/th/docs/authentication/api-keys/
markdown: https://tajo.io/th/docs/authentication/api-keys.md
lang: th-TH
author: "Set Noa"
author_url: https://tajo.io/th/set-noa/
robots: noindex
---

ขอสิทธิ์ใช้งานล่วงหน้า

กรอกชื่อและที่อยู่อีเมลที่ทำงานของคุณ เราจะส่งลิงก์เพื่อยืนยันคำขอเข้าใช้งาน Tajo ทางอีเมล

# คีย์ API

[Set Noa](https://tajo.io/th/set-noa/)

คีย์ API เป็นวิธีหลักในการยืนยันตัวตนกับ Brevo API และเป็นช่องทางที่เรียบง่ายและปลอดภัยสำหรับเข้าถึงบัญชีของคุณผ่านโปรแกรม

## คีย์ API คืออะไร

คีย์ API คือตัวระบุเฉพาะที่ใช้ยืนยันตัวตนของแอปพลิเคชันของคุณเมื่อเรียกใช้งาน Brevo API คีย์แต่ละอันเป็นสตริงความยาว 64 อักขระ ซึ่งทำหน้าที่เป็นทั้งตัวระบุและรหัสผ่านในตัวเดียวกัน

```
Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4
```

## การสร้างคีย์ API

### คู่มือทีละขั้นตอน

1. **เข้าสู่ระบบ Brevo**: เปิด[แดชบอร์ด Brevo](https://app.brevo.com/) ของคุณ
2. **ไปที่การตั้งค่า**: คลิกที่โปรไฟล์ของคุณ แล้วเลือก Settings
3. **เปิดหน้า API Keys**: เลือก “API Keys” จากเมนูด้านซ้าย
4. **สร้างคีย์ใหม่**: คลิก “Generate a New API Key”
5. **ตั้งชื่อคีย์**: ตั้งชื่อที่สื่อความหมาย (เช่น “Production App”, “Development Testing”)
6. **กำหนดสิทธิ์**: เลือกระดับการเข้าถึงที่เหมาะสม
7. **สร้าง**: คลิก “Generate” แล้วคัดลอกคีย์ทันที

### แนวทางการตั้งชื่อคีย์ API

ใช้ชื่อที่สื่อความหมายเพื่อให้ระบุวัตถุประสงค์ของคีย์ได้ง่าย

- `production-web-app`
- `staging-environment`
- `mobile-app-ios`
- `webhook-listener`
- `data-sync-service`

## ประเภทของคีย์ API และสิทธิ์การใช้งาน

### คีย์แบบเข้าถึงเต็มรูปแบบ

```
Permissions: All API endpoints
Use cases: Complete application integration
Risk level: High - protect carefully
```

### คีย์แบบอ่านอย่างเดียว

```
Permissions: GET requests only
Use cases: Analytics, reporting, dashboards
Risk level: Low - limited access
```

### คีย์สำหรับส่งอีเมลเท่านั้น

```
Permissions: Transactional email sending
Use cases: Application notifications, receipts
Risk level: Medium - can send emails
```

### คีย์สำหรับจัดการรายชื่อผู้ติดต่อ

```
Permissions: Contact CRUD operations
Use cases: CRM integrations, form submissions
Risk level: Medium - data modification
```

## การใช้งานคีย์ API

### การยืนยันตัวตนผ่านเฮดเดอร์

แนบคีย์ API ของคุณไว้ในเฮดเดอร์ `api-key`

```http
GET /v3/account HTTP/1.1
Host: api.brevo.com
Accept: application/json
Content-Type: application/json
api-key: YOUR_API_KEY
```

### ตัวอย่างโค้ด

#### JavaScript/Node.js

```javascript
const brevo = require('@getbrevo/brevo');

const apiInstance = new brevo.AccountApi();
apiInstance.setApiKey(brevo.AccountApiApiKeys.apiKey, process.env.BREVO_API_KEY);

// Make authenticated request
apiInstance.getAccount()
  .then(data => console.log('Account info:', data))
  .catch(error => console.error('Error:', error));
```

#### Python

```python
import sib_api_v3_sdk
from sib_api_v3_sdk.rest import ApiException

# Configure API key
configuration = sib_api_v3_sdk.Configuration()
configuration.api_key['api-key'] = 'YOUR_API_KEY'

# Create API instance
api_instance = sib_api_v3_sdk.AccountApi(sib_api_v3_sdk.ApiClient(configuration))

try:
    # Get account info
    api_response = api_instance.get_account()
    print(api_response)
except ApiException as e:
    print("Exception when calling AccountApi->get_account: %s\n" % e)
```

#### PHP

```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');

// Configure API key
$config = SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key', 'YOUR_API_KEY');

// Create API instance
$apiInstance = new SendinBlue\Client\Api\AccountApi(
    new GuzzleHttp\Client(),
    $config
);

try {
    $result = $apiInstance->getAccount();
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->getAccount: ', $e->getMessage(), PHP_EOL;
}
?>
```

#### Ruby

```ruby
require 'sib-api-v3-sdk'

# Configure API key
SibApiV3Sdk.configure do |config|
  config.api_key['api-key'] = 'YOUR_API_KEY'
end

# Create API instance
api_instance = SibApiV3Sdk::AccountApi.new

begin
  # Get account info
  result = api_instance.get_account
  puts result
rescue SibApiV3Sdk::ApiError => e
  puts "Exception when calling AccountApi->get_account: #{e}"
end
```

## ความปลอดภัยของคีย์ API

### การจัดเก็บอย่างปลอดภัย

**ตัวแปรสภาพแวดล้อม** (แนะนำ)

```bash
# .env file
BREVO_API_KEY=xkeysib-your-api-key-here

# Usage in code
const apiKey = process.env.BREVO_API_KEY;
```

**บริการจัดการความลับบนคลาวด์**

- AWS Secrets Manager
- Google Secret Manager
- Azure Key Vault
- HashiCorp Vault

### แนวทางปฏิบัติด้านความปลอดภัย

1. **อย่าเขียนคีย์ไว้ในโค้ดโดยตรง**

   ```javascript
   // ❌ Bad - hardcoded
   const apiKey = "xkeysib-a1b2c3d4...";

   // ✅ Good - environment variable
   const apiKey = process.env.BREVO_API_KEY;
   ```

2. **ใช้คีย์แยกกันในแต่ละสภาพแวดล้อม**

   ```
   Production:  BREVO_API_KEY_PROD
   Staging:     BREVO_API_KEY_STAGING
   Development: BREVO_API_KEY_DEV
   ```

3. **หมุนเวียนคีย์อย่างสม่ำเสมอ**

   - ตั้งการแจ้งเตือนในปฏิทินให้หมุนเวียนคีย์ทุกไตรมาส
   - ใช้เครื่องมืออัตโนมัติในการหมุนเวียนคีย์
   - เตรียมแผนย้อนกลับไว้ให้พร้อม

4. **ติดตามการใช้งานคีย์**

   - ตั้งการแจ้งเตือนเมื่อพบกิจกรรมผิดปกติ
   - ตรวจสอบบันทึกการใช้งานคีย์ทุกเดือน
   - ติดตามรูปแบบการเข้าถึงตามพื้นที่ทางภูมิศาสตร์

## การจัดการคีย์

### การเฝ้าติดตามคีย์ที่ใช้งานอยู่

ติดตามคีย์ที่ใช้งานอยู่ของคุณได้จากแดชบอร์ด

```
Key Name: production-web-app
Created: 2024-01-15
Last Used: 2024-01-20 14:30 UTC
Requests Today: 1,247
Status: Active
```

### ขั้นตอนการหมุนเวียนคีย์

1. **สร้างคีย์ใหม่**: สร้างคีย์สำหรับใช้แทนคีย์เดิม
2. **อัปเดตการตั้งค่า**: ดีพลอยระบบด้วยคีย์ใหม่
3. **ติดตามผล**: ตรวจสอบให้แน่ใจว่าคีย์ใหม่ทำงานถูกต้อง
4. **ช่วงผ่อนผัน**: ให้คีย์เดิมใช้งานต่อได้อีก 24 ถึง 48 ชั่วโมง
5. **เพิกถอนคีย์เดิม**: ลบคีย์เดิมทิ้ง

### การเพิกถอนคีย์ในกรณีฉุกเฉิน

หากคีย์ถูกเปิดเผยหรือถูกขโมย

1. **เพิกถอนทันที**: ลบคีย์ออกจากแดชบอร์ด
2. **สร้างคีย์ทดแทน**: สร้างคีย์ใหม่ทันที
3. **อัปเดตแอปพลิเคชัน**: ดีพลอยด้วยคีย์ใหม่โดยเร็วที่สุด
4. **ตรวจสอบกิจกรรม**: ตรวจหาการใช้งานที่ไม่ได้รับอนุญาต
5. **รายงานเหตุการณ์**: บันทึกรายละเอียดของเหตุการณ์ด้านความปลอดภัย

## ขีดจำกัดอัตราการเรียกใช้กับคีย์ API

Brevo จำกัดคำขอต่อ endpoint ไม่ใช่ต่อวัน ในระดับ general ซึ่งทุกแพ็กเกจได้รับ `POST /v3/smtp/email` อนุญาต 1,000 คำขอต่อวินาที endpoint ของ `/v3/contacts` อนุญาต 10 คำขอต่อวินาทีและ 36,000 คำขอต่อชั่วโมง และ endpoint ที่ไม่มีขีดจำกัดของตัวเองอนุญาต 100 คำขอต่อชั่วโมง แพ็กเกจ Professional และ Enterprise ปลดล็อกระดับที่สูงขึ้น ดูตารางทั้งหมดที่ [ขีดจำกัดอัตราการเรียกใช้](https://tajo.io/th/docs/rate-limits/)

### เฮดเดอร์แสดงขีดจำกัดอัตราการเรียกใช้

```http
HTTP/1.1 200 OK
x-sib-ratelimit-limit: 1000
x-sib-ratelimit-remaining: 750
x-sib-ratelimit-reset: 1
```

### การรับมือกับขีดจำกัดอัตราการเรียกใช้

```javascript
async function makeApiCall() {
  try {
    const response = await fetch(url, { headers });

    if (response.status === 429) {
      // Seconds until the window resets
      const waitTime = Number(response.headers.get('x-sib-ratelimit-reset') || 1);

      console.log(`Rate limited. Waiting ${waitTime} seconds`);
      await new Promise(resolve => setTimeout(resolve, waitTime * 1000));

      // Retry the request
      return makeApiCall();
    }

    return response.json();
  } catch (error) {
    console.error('API call failed:', error);
    throw error;
  }
}
```

## การแก้ปัญหาเกี่ยวกับคีย์ API

### ข้อความแสดงข้อผิดพลาดที่พบบ่อย

**คีย์ API ไม่ถูกต้อง (401)**

```json
{
  "code": "unauthorized",
  "message": "Invalid API key provided"
}
```

**สิทธิ์ไม่เพียงพอ (403)**

```json
{
  "code": "permission_denied",
  "message": "API key does not have required permissions"
}
```

**เกินขีดจำกัดอัตราการเรียกใช้ (429)**

```json
{
  "code": "too_many_requests",
  "message": "Rate limit exceeded for API key"
}
```

### รายการตรวจสอบเมื่อแก้ปัญหา

- คีย์มีรูปแบบถูกต้อง (64 อักขระ)
- ไม่มีช่องว่างเกินหรืออักขระที่มองไม่เห็นปะปนอยู่
- คีย์มีสิทธิ์ที่จำเป็น
- คีย์ยังใช้งานได้ (ไม่ถูกเพิกถอน)
- ยังอยู่ในขีดจำกัดอัตราการเรียกใช้
- ใช้เอนด์พอยต์ API ที่ถูกต้อง
- จัดรูปแบบเฮดเดอร์อย่างถูกต้อง

## ขั้นตอนถัดไป

- [เรียนรู้เกี่ยวกับ OAuth 2.0](https://tajo.io/th/docs/authentication/oauth/)
- ทำความเข้าใจโทเคน JWT
- [สำรวจขีดจำกัดอัตราการเรียกใช้](https://tajo.io/th/docs/rate-limits/)
- [ทดลองใช้ SDK](https://tajo.io/th/docs/sdks-libraries/)
