Mit Webhooks kann die Gemini API Echtzeitbenachrichtigungen an Ihren Server senden, wenn asynchrone oder lang andauernde Vorgänge (Long-Running Operations, LROs) abgeschlossen sind. Dadurch entfällt die Notwendigkeit, die API nach Statusaktualisierungen abzufragen, was die Latenz und den Aufwand reduziert.
Webhooks sind für Vorgänge wie Batch jobs, Interaktionen und Videogenerierung verfügbar.
Funktionsweise
Anstatt GET /operations wiederholt abzufragen, um zu prüfen, ob ein Job abgeschlossen ist, können Sie Gemini API-Webhooks so konfigurieren, dass bei einem Ereignistrigger sofort eine HTTP-POST-Anfrage an Ihre Listener-URL gesendet wird.
Die Gemini API unterstützt zwei Möglichkeiten zum Konfigurieren von Webhooks:
- Statische Webhooks: Endpunkte auf Projektebene, die mit der Gemini WebhookService API konfiguriert wurden. Gut für globale Integrationen (z.B. Benachrichtigung von Slack, Synchronisierung einer Datenbank usw.).
- Dynamische Webhooks: Überschreibungen auf Anfrageebene, bei denen eine Webhook-URL in der Konfigurationsnutzlast eines bestimmten Jobaufrufs übergeben wird. Ideal, um bestimmte Jobs an dedizierte Endpunkte weiterzuleiten.
Statische Webhooks
Statische Webhooks werden für ein ganzes Projekt registriert und werden für jedes übereinstimmende Ereignis ausgelöst.
Webhook erstellen
Sie können Endpunkte mit dem SDK oder der REST API erstellen.
WICHTIG: Beim Erstellen eines Webhooks gibt die API nur einmal ein Signatur-Secret zurück. Sie müssen dieses Secret sicher speichern (z.B. in Ihren Umgebungsvariablen), um Signaturen später zu prüfen. Wenn Sie das Signatur-Secret verlieren, müssen Sie es rotieren
Python
from google import genai
client = genai.Client()
webhook = client.webhooks.create(
name="MyBatchWebhook",
subscribed_events=["batch.succeeded", "batch.failed"],
uri="https://my-api.com/gemini-callback",
)
# Store webhook.new_signing_secret securely
webhook_secret = webhook.new_signing_secret
print(f"Created webhook: {webhook.name}, {webhook.id}")
JavaScript
import {