Mulai
Autentikasi
Autentikasi permintaan dengan kunci API, ikuti praktik keamanan, dan tangani kesalahan autentikasi.
Semua permintaan ke API Felo API Platform memerlukan autentikasi menggunakan kunci API. Panduan ini menjelaskan cara mengautentikasi permintaan Anda dan menangani masalah autentikasi yang umum.
Autentikasi dengan Kunci API
Felo menggunakan autentikasi kunci API untuk semua endpoint v2. Kunci API Anda mengidentifikasi aplikasi Anda dan memberikan akses ke kemampuan platform.
Cara Kerjanya
- Anda memperoleh kunci API dari halaman Kunci API Felo API Platform
- Anda menyertakan kunci API di header
Authorizationpada setiap permintaan API - Platform memvalidasi kunci API Anda dan memproses permintaan Anda
Format Header
Sertakan kunci API Anda di header Authorization menggunakan skema autentikasi Bearer:
Authorization: Bearer YOUR_API_KEYContoh Permintaan
curl -X POST https://openapi.felo.ai/v2/chat \
-H "Authorization: Bearer sk_live_abc123xyz789" \
-H "Content-Type: application/json" \
-d '{"query": "What is machine learning?"}'Mendapatkan Kunci API Anda
Untuk mendapatkan kunci API Anda:
- Buka halaman Kunci API Felo API Platform
- Masuk dengan akun Felo Anda jika diminta
- Masukkan nama kunci dan klik Create Key
- Salin kunci lengkap saat muncul. Kunci hanya ditampilkan sekali
- Simpan kunci dengan aman dan gunakan sebagai
FELO_API_KEY
Praktik Terbaik Keamanan
1. Simpan Kunci API dengan Aman
Jangan menuliskan kunci API secara hardcode di kode sumber Anda:
# ❌ Bad - API Key exposed in code
api_key = "sk_live_abc123xyz789"Lakukan ini: gunakan variabel lingkungan atau konfigurasi yang aman:
# ✅ Good - API Key from environment
import os
api_key = os.environ.get('FELO_API_KEY')2. Gunakan Variabel Lingkungan
Simpan kunci API Anda di variabel lingkungan:
Linux/macOS:
export FELO_API_KEY="sk_live_abc123xyz789"Windows (Command Prompt):
set FELO_API_KEY=sk_live_abc123xyz789Windows (PowerShell):
$env:FELO_API_KEY="sk_live_abc123xyz789"3. Rotasi Kunci Secara Berkala
Secara berkala buat kunci API baru dan cabut kunci lama untuk meminimalkan risiko keamanan.
4. Gunakan Kunci Berbeda untuk Lingkungan Berbeda
Buat kunci API terpisah untuk lingkungan pengembangan, staging, dan produksi.
5. Jangan Pernah Mengekspos Kunci di Kode Sisi Klien
Kunci API hanya boleh digunakan dalam kode sisi server. Jangan pernah menyertakannya dalam:
- Kode JavaScript frontend
- Kode sumber aplikasi seluler
- Repositori publik
- File konfigurasi sisi klien
Error Autentikasi
Untuk envelope error lengkap, header batas laju, dan kebijakan percobaan ulang, lihat Error, Batas, dan Percobaan Ulang.
Kode Error Umum
| HTTP | Kode | Arti |
|---|---|---|
| 401 | UNAUTHORIZED | Kunci hilang, tidak valid, kedaluwarsa, atau dicabut |
| 429 | RATE_LIMITED | Terlalu banyak permintaan; lihat panduan Error, Batas, dan Percobaan Ulang |
Permintaan yang ditolak mengembalikan status kunci di message:
{
"status": 401,
"code": "UNAUTHORIZED",
"message": "API Key is required",
"request_id": "..."
}status adalah kode status HTTP. Kunci yang dicabut melaporkan API Key has been revoked (keyPrefix=...). Bercabanglah berdasarkan status HTTP dan code, bukan berdasarkan kata-kata persis pada message.
Pemecahan Masalah
Jika autentikasi gagal:
- Periksa bahwa header persis
Authorization: Bearer YOUR_API_KEY. - Konfirmasi kunci belum dicabut di halaman Kunci API.
- Konfirmasi lingkungan menggunakan kunci yang Anda harapkan.
- Buat kunci baru jika kunci lama dihapus atau dirotasi. Kunci lengkap hanya ditampilkan sekali, saat pembuatan.
Untuk daftar periksa berbasis gejala yang mencakup autentikasi dan bagian lain platform, lihat Pemecahan Masalah.
Contoh: Men-debug Autentikasi
import requests
url = "https://openapi.felo.ai/v2/chat"
api_key = "YOUR_API_KEY"
# Correct format
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
response = requests.post(url, headers=headers, json={"query": "test"})
if response.status_code == 401:
error = response.json()
print(f"Authentication failed: {error['code']}")
print(f"Message: {error['message']}")
print(f"Request ID: {error['request_id']}")
else:
print("Authentication successful!")Batas Laju
Batas laju diberlakukan per endpoint, bukan secara global per kunci API. Saat ini hanya `/v2/chat` yang menerapkannya; pengguna dengan langganan Felo berbayar yang efektif dikecualikan. Endpoint /v2/** lainnya tidak memiliki batas laju yang diberlakukan.
Respons 429 menyertakan header X-RateLimit-* dan Retry-After. Selalu baca batas yang berlaku dari header respons, bukan dari dokumentasi.
Untuk dimensi batas laju lengkap, header, dan kebijakan percobaan ulang, lihat Error, Batas, dan Percobaan Ulang.
Butuh Bantuan?
Jika Anda mengalami masalah autentikasi:
- Tinjau panduan ini dengan cermat
- Lihat panduan Memulai
- Verifikasi kunci API Anda di halaman Kunci API
- Hubungi dukungan di [email protected] dengan ID permintaan Anda
Langkah Berikutnya
- Panduan Memulai - Pelajari cara membuat panggilan API pertama Anda
- Referensi Chat API - Jelajahi dokumentasi Chat API