API-ji tretjih oseb (b77.http)
Kliči kateri koli API HTTPS s svojimi skrivnimi ključi, ne da bi jih razkril.
b77.http.fetch kliče API HTTPS tretje osebe s strežnikov builder77. Ključi API so shranjeni v Nastavitve → Skrivni ključi, v kodi pa jih zapišeš kot {{secret:NAME}}: strežnik jih vstavi sam, zato nikoli ne pridejo do brskalnika.
const res = await b77.http.fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST', // default GET
headers: { Authorization: 'Bearer {{secret:OPENAI_API_KEY}}' },
body: { model: 'gpt-4o-mini', messages: [{ role: 'user', content: 'Hi!' }] }, // object → JSON, or a string
});
if (res.ok) console.log(res.data); // { ok, status, headers, body (text), data (parsed JSON or null) }Vsak klic porabi 1 kredit za integracije. Samo https, časovna omejitev 15 sekund, odgovori do 1 MB. Če API tvoj ključ vrne v odgovoru, se zamenja z [secret], še preden odgovor vidi tvoja aplikacija.
Pravila za vsak ključ
Vsak uporabnik tvoje aplikacije lahko s skrivnim ključem kliče API – ne da bi ga videl. Zato vsak ključ deluje samo tako, kot dovoliš:
- Dovoljeni gostitelji – edini strežniki, ki jim je ključ sploh poslan (npr.
api.openai.com;*.example.comzajame tudi poddomene). - Dovoljene metode – privzeto GET in POST.
- Dovoljene poti – neobvezne predpone poti, kot je
/v1/chat/. Prazno pomeni katero koli pot. - Kam se ključ lahko vstavi – privzeto samo v glavo za poverilnice (Authorization, X-Api-Key, Api-Key, X-Goog-Api-Key in podobne). Parametri poizvedbe (po imenu, npr.
key), pot URL-ja in telo zahteve so izklopljeni, dokler jih ne vklopiš.
Klic, ki krši pravilo, je zavrnjen s statusom 403, še preden se karkoli pošlje.
Ključi v URL-ju ali telesu
Raje izberi API-je, ki sprejmejo ključ v glavi. Nekateri ga namesto tega zahtevajo v naslovu – dovoli natanko to mesto in zoži pot:
// Settings → Secrets: TELEGRAM_TOKEN, host api.telegram.org, "In the URL path" on,
// allowed path /bot{{secret:TELEGRAM_TOKEN}}/sendMessage
await b77.http.fetch('https://api.telegram.org/bot{{secret:TELEGRAM_TOKEN}}/sendMessage', {
method: 'POST',
body: { chat_id: 12345, text: 'New booking!' },
});Možnost V telesu zahteve vklopi samo, če jo API zahteva: vsak uporabnik tvoje aplikacije bi lahko nato ključ zapisal v karkoli, kar ta API shrani (sporočilo, zapisek, javno datoteko), in ga prebral nazaj.