Shenjat kalimtare janë argumente vërtetimi jetëshkurtër për të hyrë në API Gemini përmes WebSockets . Ato janë krijuar për të rritur sigurinë kur jeni duke u lidhur drejtpërdrejt nga pajisja e një përdoruesi me API-në (një zbatim nga klienti në server ). Ashtu si çelësat standardë API, shenjat kalimtare mund të nxirren nga aplikacionet e klientit si shfletuesit e uebit ose aplikacionet celulare. Por për shkak se shenjat kalimtare skadojnë shpejt dhe mund të kufizohen, ato reduktojnë ndjeshëm rreziqet e sigurisë në një mjedis prodhimi.
Si funksionojnë shenjat kalimtare
Ja se si funksionojnë shenjat kalimtare në një nivel të lartë:
- Klienti juaj (p.sh. aplikacioni i uebit) vërtetohet me backend-in tuaj.
- Backend-i juaj kërkon një shenjë kalimtare nga shërbimi i sigurimit të Gemini API.
- Gemini API lëshon një token jetëshkurtër.
- Backend-i juaj i dërgon kodin klientit për lidhjet WebSocket në Live API. Ju mund ta bëni këtë duke shkëmbyer çelësin tuaj API me një shenjë kalimtare.
- Më pas klienti përdor tokenin sikur të ishte një çelës API.

Kjo rrit sigurinë sepse edhe nëse nxirret, token është jetëshkurtër, ndryshe nga një çelës API jetëgjatë i vendosur në anën e klientit. Meqenëse klienti dërgon të dhëna direkt te Binjakët, kjo gjithashtu përmirëson vonesën dhe shmang nevojën e mbështetësve tuaj për të përfaqsuar të dhënat në kohë reale.
Krijo një shenjë kalimtare
 Këtu është një shembull i thjeshtuar se si të merrni një shenjë kalimtare nga Binjakët. Si parazgjedhje, do të keni 1 minutë për të nisur sesionet e reja Live API duke përdorur tokenin nga kjo kërkesë ( newSessionExpireTime ) dhe 30 minuta për të dërguar mesazhe mbi atë lidhje ( expireTime ). 
Python
import datetime
now = datetime.datetime.now(tz=datetime.timezone.utc)
client = genai.Client(
    http_options={'api_version': 'v1alpha',}
)
token = client.auth_tokens.create(
    config = {
    'uses': 1, # The ephemeral token can only be used to start a single session
    'expire_time': now + datetime.timedelta(minutes=30), # Default is 30 minutes in the future
    # 'expire_time': '2025-05-17T00:00:00Z',   # Accepts isoformat.
    'new_session_expire_time': now + datetime.timedelta(minutes=1), # Default 1 minute in the future
    'http_options': {'api_version': 'v1alpha'},
  }
)
# You'll need to pass the value under token.name back to your client to use it
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const expireTime = new Date(Date.now() + 30 * 60 * 1000).toISOString();
  const token: AuthToken = await client.authTokens.create({
    config: {
      uses: 1, // The default
      expireTime: expireTime // Default is 30 mins
      newSessionExpireTime: new Date(Date.now() + (1 * 60 * 1000)), // Default 1 minute in the future
      httpOptions: {apiVersion: 'v1alpha'},
    },
  });
 Për kufizimet e vlerës së expireTime , parazgjedhjet dhe specifikat e tjera të fushës, shihni referencën API . Brenda afatit kohor të expireTime , do t'ju duhet sessionResumption për të rilidhur telefonatën çdo 10 minuta (kjo mund të bëhet me të njëjtin kod edhe nëse uses: 1 ).
Është gjithashtu e mundur të bllokohet një shenjë kalimtare në një grup konfigurimesh. Kjo mund të jetë e dobishme për të përmirësuar më tej sigurinë e aplikacionit tuaj dhe për të mbajtur udhëzimet e sistemit në anën e serverit.
Python
client = genai.Client(
    http_options={'api_version': 'v1alpha',}
)
token = client.auth_tokens.create(
    config = {
    'uses': 1,
    'live_connect_constraints': {
        'model': 'gemini-2.0-flash-live-001',
        'config': {
            'session_resumption':{},
            'temperature':0.7,
            'response_modalities':['TEXT']
        }
    },
    'http_options': {'api_version': 'v1alpha'},
    }
)
# You'll need to pass the value under token.name back to your client to use it
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const expireTime = new Date(Date.now() + 30 * 60 * 1000).toISOString();
const token = await client.authTokens.create({
    config: {
        uses: 1, // The default
        expireTime: expireTime,
        liveConnectConstraints: {
            model: 'gemini-2.0-flash-live-001',
            config: {
                sessionResumption: {},
                temperature: 0.7,
                responseModalities: ['TEXT']
            }
        },
        httpOptions: {
            apiVersion: 'v1alpha'
        }
    }
});
// You'll need to pass the value under token.name back to your client to use it
Ju gjithashtu mund të kyçni një nëngrup fushash, shikoni dokumentacionin e SDK-së për më shumë informacion.
Lidhu me Live API me një shenjë kalimtare
 Pasi të keni një shenjë kalimtare, ju e përdorni atë sikur të ishte një çelës API (por mbani mend, funksionon vetëm për API-në e drejtpërdrejtë dhe vetëm me versionin v1alpha të API-së).
Vini re se përdorimi i shenjave kalimtare shton vlerë vetëm kur vendoset aplikacione që ndjekin qasjen e zbatimit nga klienti në server .
JavaScript
import { GoogleGenAI, Modality } from '@google/genai';
// Use the token generated in the "Create an ephemeral token" section here
const ai = new GoogleGenAI({
  apiKey: token.name
});
const model = 'gemini-2.0-flash-live-001';
const config = { responseModalities: [Modality.TEXT] };
async function main() {
  const session = await ai.live.connect({
    model: model,
    config: config,
    callbacks: { ... },
  });
  // Send content...
  session.close();
}
main();
Shikoni Filloni me API-në e drejtpërdrejtë për më shumë shembuj.
Praktikat më të mira
-  Vendosni një kohëzgjatje të shkurtër skadimi duke përdorur parametrin expire_time.
- Shenjat skadojnë, duke kërkuar rifillimin e procesit të sigurimit.
- Verifikoni vërtetimin e sigurt për backend-in tuaj. Shenjat kalimtar do të jenë po aq të sigurt sa metoda juaj e vërtetimit të backend.
- Në përgjithësi, shmangni përdorimin e shenjave kalimtare për lidhjet backend-to-Gemini, pasi kjo rrugë zakonisht konsiderohet e sigurt.
Kufizimet
Shenjat kalimtare janë të përputhshme vetëm me Live API për momentin.
Çfarë është më pas
- Lexoni referencën Live API për shenjat kalimtare për më shumë informacion.