Ključi API
Ključi API so glavni način preverjanja pristnosti pri API platforme Brevo. Ponujajo preprost in varen način programskega dostopa do vašega računa.
Kaj so ključi API?
Ključi API so enolični identifikatorji, ki preverijo pristnost vaše aplikacije pri pošiljanju zahtev API platforme Brevo. Vsak ključ je niz 64 znakov, ki hkrati služi kot identifikator in kot geslo.
Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4Ustvarjanje ključev API
Vodnik po korakih
- Prijavite se v Brevo: odprite svojo nadzorno ploščo Brevo
- Pomaknite se do nastavitev: kliknite svoj profil → Nastavitve
- Odprite ključe API: v levem meniju izberite „API Keys“
- Ustvarite nov ključ: kliknite „Generate a New API Key“
- Poimenujte ključ: dajte mu opisno ime (na primer „Production App“ ali „Development Testing“)
- Nastavite dovoljenja: izberite ustrezno raven dostopa
- Ustvarite ključ: kliknite „Generate“ in ključ takoj kopirajte
Dogovori o poimenovanju ključev API
Uporabljajte opisna imena, ki vam pomagajo prepoznati namen ključa:
production-web-appstaging-environmentmobile-app-ioswebhook-listenerdata-sync-service
Vrste in dovoljenja ključev API
Ključi s polnim dostopom
Permissions: All API endpointsUse cases: Complete application integrationRisk level: High - protect carefullyKljuči samo za branje
Permissions: GET requests onlyUse cases: Analytics, reporting, dashboardsRisk level: Low - limited accessKljuči samo za pošiljanje
Permissions: Transactional email sendingUse cases: Application notifications, receiptsRisk level: Medium - can send emailsKljuči za upravljanje stikov
Permissions: Contact CRUD operationsUse cases: CRM integrations, form submissionsRisk level: Medium - data modificationUporaba ključev API
Preverjanje pristnosti prek glave
Svoj ključ API vključite v glavo api-key:
GET /v3/account HTTP/1.1Host: api.brevo.comAccept: application/jsonContent-Type: application/jsonapi-key: YOUR_API_KEYPrimeri kode
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}"endVarnost ključev API
Varno shranjevanje
Spremenljivke okolja (priporočeno)
# .env fileBREVO_API_KEY=xkeysib-your-api-key-here
# Usage in codeconst apiKey = process.env.BREVO_API_KEY;Upravitelji skrivnosti v oblaku
- AWS Secrets Manager
- Google Secret Manager
- Azure Key Vault
- HashiCorp Vault
Najboljše prakse za varnost
-
Ključev nikoli ne vpisujte neposredno v kodo
// ❌ Bad - hardcodedconst apiKey = "xkeysib-a1b2c3d4...";// ✅ Good - environment variableconst apiKey = process.env.BREVO_API_KEY; -
Za vsako okolje uporabite svoj ključ
Production: BREVO_API_KEY_PRODStaging: BREVO_API_KEY_STAGINGDevelopment: BREVO_API_KEY_DEV -
Redno menjajte ključe
- Nastavite koledarske opomnike za četrtletno menjavo
- Za menjavo ključev uporabite orodja za avtomatizacijo
- Pripravite načrt za vrnitev na prejšnje stanje
-
Spremljajte uporabo ključev
- Nastavite opozorila za nenavadno dejavnost
- Mesečno preglejte dnevnike uporabe ključev
- Spremljajte geografske vzorce dostopa
Upravljanje ključev
Spremljanje aktivnih ključev
Svoje aktivne ključe spremljajte na nadzorni plošči:
Key Name: production-web-appCreated: 2024-01-15Last Used: 2024-01-20 14:30 UTCRequests Today: 1,247Status: ActivePostopek menjave ključev
- Ustvarite nov ključ: pripravite nadomestni ključ
- Posodobite konfiguracijo: uvedite različico z novim ključem
- Spremljajte: preverite, ali novi ključ deluje pravilno
- Prehodno obdobje: stari ključ pustite aktiven 24-48 ur
- Prekličite stari ključ: izbrišite prejšnji ključ
Nujni preklic ključa
Če je ključ ogrožen:
- Takojšen preklic: izbrišite ključ z nadzorne plošče
- Ustvarite nadomestilo: takoj ustvarite nov ključ
- Posodobite aplikacije: čim prej jih uvedite z novim ključem
- Spremljajte dejavnost: preverite, ali je prišlo do nepooblaščene uporabe
- Poročilo o incidentu: dokumentirajte varnostni incident
Omejevanje števila zahtev in ključi API
Vsak ključ API ima svoje omejitve števila zahtev:
- Paket Free: 300 zahtev/dan
- Paket Starter: 20.000 zahtev/dan
- Paket Business: 50.000 zahtev/dan
- Paket Enterprise: omejitve po meri
Glave z omejitvami števila zahtev
HTTP/1.1 200 OKX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999X-RateLimit-Reset: 1640995200Ravnanje z omejitvami števila zahtev
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; }}Odpravljanje težav s ključi API
Pogosta sporočila o napakah
Neveljaven ključ API (401)
{ "code": "unauthorized", "message": "Invalid API key provided"}Nezadostna dovoljenja (403)
{ "code": "permission_denied", "message": "API key does not have required permissions"}Presežena omejitev števila zahtev (429)
{ "code": "too_many_requests", "message": "Rate limit exceeded for API key"}Kontrolni seznam za razhroščevanje
- Ključ je pravilno oblikovan (64 znakov)
- Ni odvečnih presledkov ali skritih znakov
- Ključ ima zahtevana dovoljenja
- Ključ je aktiven (ni preklican)
- Zahteve so znotraj omejitev števila zahtev
- Uporabljate pravo končno točko API
- Glave so pravilno oblikovane
Naslednji koraki
- Spoznajte OAuth 2.0
- Razumevanje žetonov JWT
- Raziščite omejitve števila zahtev
- Preizkusite SDK-je