API kulcsok
Az API kulcsok a Brevo API elsődleges hitelesítési módszere. Egyszerű és biztonságos módot adnak arra, hogy programozottan érd el a fiókodat.
Mik azok az API kulcsok?
Az API kulcsok egyedi azonosítók, amelyek hitelesítik az alkalmazásodat, amikor kérést küld a Brevo API-nak. Minden kulcs egy 64 karakteres karakterlánc, amely egyszerre azonosító és jelszó.
Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4API kulcsok létrehozása
Lépésről lépésre
- Jelentkezz be a Brevóba: nyisd meg a Brevo irányítópultot
- Menj a beállításokhoz: kattints a profilodra → Settings
- Nyisd meg az API kulcsokat: válaszd az “API Keys” menüpontot a bal oldali menüből
- Hozz létre új kulcsot: kattints a “Generate a New API Key” gombra
- Nevezd el a kulcsot: adj neki beszédes nevet (például “Production App”, “Development Testing”)
- Állítsd be a jogosultságokat: válaszd ki a megfelelő hozzáférési szintet
- Generálás: kattints a “Generate” gombra, és azonnal másold ki a kulcsot
API kulcsok elnevezési konvenciói
Használj beszédes neveket, amelyekből kiderül a kulcs célja:
production-web-appstaging-environmentmobile-app-ioswebhook-listenerdata-sync-service
API kulcsok típusai és jogosultságai
Teljes hozzáférésű kulcsok
Permissions: All API endpointsUse cases: Complete application integrationRisk level: High - protect carefullyCsak olvasható kulcsok
Permissions: GET requests onlyUse cases: Analytics, reporting, dashboardsRisk level: Low - limited accessCsak küldésre szolgáló kulcsok
Permissions: Transactional email sendingUse cases: Application notifications, receiptsRisk level: Medium - can send emailsKapcsolatkezelő kulcsok
Permissions: Contact CRUD operationsUse cases: CRM integrations, form submissionsRisk level: Medium - data modificationAPI kulcsok használata
Hitelesítés fejlécben
Tedd be az API kulcsodat az api-key fejlécbe:
GET /v3/account HTTP/1.1Host: api.brevo.comAccept: application/jsonContent-Type: application/jsonapi-key: YOUR_API_KEYKódpéldák
JavaScript/Node.js
const brevo = require('@getbrevo/brevo');
const apiInstance = new brevo.AccountApi();apiInstance.setApiKey(brevo.AccountApiApiKeys.apiKey, process.env.BREVO_API_KEY);
// Make authenticated requestapiInstance.getAccount() .then(data => console.log('Account info:', data)) .catch(error => console.error('Error:', error));Python
import sib_api_v3_sdkfrom sib_api_v3_sdk.rest import ApiException
# Configure API keyconfiguration = sib_api_v3_sdk.Configuration()configuration.api_key['api-key'] = 'YOUR_API_KEY'
# Create API instanceapi_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
<?phprequire_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
require 'sib-api-v3-sdk'
# Configure API keySibApiV3Sdk.configure do |config| config.api_key['api-key'] = 'YOUR_API_KEY'end
# Create API instanceapi_instance = SibApiV3Sdk::AccountApi.new
begin # Get account info result = api_instance.get_account puts resultrescue SibApiV3Sdk::ApiError => e puts "Exception when calling AccountApi->get_account: #{e}"endAPI kulcsok biztonsága
Biztonságos tárolás
Környezeti változók (ajánlott)
# .env fileBREVO_API_KEY=xkeysib-your-api-key-here
# Usage in codeconst apiKey = process.env.BREVO_API_KEY;Felhős titokkezelők
- AWS Secrets Manager
- Google Secret Manager
- Azure Key Vault
- HashiCorp Vault
Biztonsági jó gyakorlatok
-
Soha ne égesd bele a kulcsokat a kódba
// ❌ Bad - hardcodedconst apiKey = "xkeysib-a1b2c3d4...";// ✅ Good - environment variableconst apiKey = process.env.BREVO_API_KEY; -
Használj külön kulcsot környezetenként
Production: BREVO_API_KEY_PRODStaging: BREVO_API_KEY_STAGINGDevelopment: BREVO_API_KEY_DEV -
Cseréld rendszeresen a kulcsokat
- Állíts be naptáremlékeztetőt a negyedéves cserére
- Használj automatizálási eszközöket a kulcscseréhez
- Legyen kész visszaállási terved
-
Figyeld a kulcshasználatot
- Állíts be riasztásokat a szokatlan aktivitásra
- Havonta nézd át a kulcshasználati naplókat
- Kövesd a földrajzi hozzáférési mintákat
Kulcskezelés
Aktív kulcsok figyelése
Kövesd az aktív kulcsaidat az irányítópulton:
Key Name: production-web-appCreated: 2024-01-15Last Used: 2024-01-20 14:30 UTCRequests Today: 1,247Status: ActiveA kulcscsere folyamata
- Generálj új kulcsot: hozd létre a leváltó kulcsot
- Frissítsd a konfigurációt: telepíts az új kulccsal
- Figyeld: győződj meg róla, hogy az új kulcs jól működik
- Türelmi idő: hagyd aktívan a régi kulcsot 24-48 órán át
- Vond vissza a régi kulcsot: töröld az előző kulcsot
Kulcs sürgős visszavonása
Ha egy kulcs kikerült:
- Azonnali visszavonás: töröld a kulcsot az irányítópultról
- Hozz létre pótlást: azonnal generálj új kulcsot
- Frissítsd az alkalmazásokat: mielőbb telepíts az új kulccsal
- Figyeld az aktivitást: nézd meg, volt-e illetéktelen használat
- Incidensjelentés: dokumentáld a biztonsági incidenst
Kéréskorlátozás és API kulcsok
Minden API kulcsnak külön kéréskorlátja van:
- Free csomag: 300 kérés/nap
- Starter csomag: 20 000 kérés/nap
- Business csomag: 50 000 kérés/nap
- Enterprise csomag: egyedi korlátok
Kéréskorlát-fejlécek
HTTP/1.1 200 OKX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999X-RateLimit-Reset: 1640995200A kéréskorlát kezelése
async function makeApiCall() { try { const response = await fetch(url, { headers });
if (response.status === 429) { const resetTime = response.headers.get('X-RateLimit-Reset'); const waitTime = resetTime - Math.floor(Date.now() / 1000);
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 kulcsok hibaelhárítása
Gyakori hibaüzenetek
Érvénytelen API kulcs (401)
{ "code": "unauthorized", "message": "Invalid API key provided"}Elégtelen jogosultság (403)
{ "code": "permission_denied", "message": "API key does not have required permissions"}Kéréskorlát túllépve (429)
{ "code": "too_many_requests", "message": "Rate limit exceeded for API key"}Hibakeresési ellenőrzőlista
- A kulcs formátuma helyes (64 karakter)
- Nincs benne felesleges szóköz vagy rejtett karakter
- A kulcsnak megvannak a szükséges jogosultságai
- A kulcs aktív (nincs visszavonva)
- A kéréskorláton belül vagy
- A megfelelő API végpontot használod
- A fejlécek formátuma helyes
Következő lépések
- Ismerd meg az OAuth 2.0-t
- Értsd meg a JWT tokeneket
- Nézd meg a kéréskorlátokat
- Próbáld ki az SDK-kat