Przejdź do poradnika
AgentinosaurusPoradniki Otwórz przestrzeń roboczą
Przeglądaj przewodniki

Integracje

Webhooki

Wyślij ostrzeżenia z kamer do własnych narzędzi, bezpiecznie i automatycznie.

Połącz swoje narzędzie

Webhook wysyła zstrukturowane ostrzeżenie na wybrany przez Ciebie adres za każdym razem, gdy zostanie utworzona nowa Wiadomość. Obejmuje to ostrzeżenia o incydentach oraz przerwy w monitorowaniu lub jego przywrócenie dla wszystkich Twoich kamer. Wiadomości i Push działają jak zwykle. Można połączyć do dziesięciu punktów końcowych.

  1. Otwórz Ustawienia → Webhooki i wybierz Dodaj webhook.
  2. Wpisz nazwę oraz publiczny adres HTTPS dostarczony przez usługę odbierającą. Wymagane są port 443 oraz publiczny adres IPv4. Adresy lokalne i przekierowania nie są akceptowane.
  3. Wybierz Pokaż sekret i skopiuj go do swojej usługi odbierającej. Zachowaj go w tajemnicy: służy do weryfikacji, że dostawa pochodzi z Agentinosaurus.
  4. Wybierz Wyślij test, a następnie Odśwież dostawy. Status Wyślij oznacza, że Twój punkt końcowy zwrócił udaną odpowiedź. Nie potwierdza to, że Twoja automatyzacja została zakończona.

Co otrzymujesz

Każde żądanie to JSON POST. message.created identyfikuje Wiadomości z kamer; webhook.test identyfikuje przycisk testowy. Wersja wynosi obecnie 1. Stabilne ID jest również wysyłane w nagłówku webhook-id. Poniższy przykład pokazuje alert incydentu. Niektóre pola, takie jak reason, są obecne tylko wtedy, gdy są istotne. incidentId jest null dla aktualizacji monitoringu.

Dane zawierają nazwy kamer i Zdarzeń, opis oraz czas wykrycia zdarzenia. Nigdy nie zawierają obrazów, wideo, poświadczeń kamery ani Twojego klucza OpenAI. Łącz tylko z usługami, którym ufasz z tymi opisami.

{
  "id": "message_example_1",
  "type": "message.created",
  "version": 1,
  "createdAt": "2026-10-12T09:42:00.000Z",
  "data": {
    "messageId": "message_example_1",
    "cameraId": "camera_example",
    "incidentId": "incident_example",
    "cameraName": "Korytarz wschodni",
    "eventName": "Zablokowane wyjście",
    "kind": "initial",
    "summary": "Wózek blokuje wyjście.",
    "detectedAt": "2026-10-12T09:42:00.000Z",
    "mock": false
  }
}

Zweryfikuj przed działaniem

Używamy podpisywania Standard Webhooks. Przeczytaj webhook-id, webhook-timestamp i webhook-signature. Użyj dokładnej surowej treści żądania, przed parowaniem JSON, oraz sekretnego klucza whsec_ z Twojego endpointu. Odrzuć znaczniki czasu różniące się więcej niż o pięć minut od zegara Twojego serwera. Zachowaj zsynchronizowany zegar serwera.

Odbiornik Node.js może użyć pakietu standardwebhooks, jak pokazano poniżej. Weryfikator rzuca wyjątek dla nieprawidłowego podpisu lub znacznika czasu. Zapisz ID webhooka z unikalnym ograniczeniem przed przetworzeniem, aby ponowne próby nie mogły wywołać tej samej akcji dwukrotnie. Nigdy nie umieszczaj sekretnego klucza w kodzie przeglądarki.

import { Webhook } from 'standardwebhooks';

const rawBody = await request.text();
const headers = Object.fromEntries(request.headers);
const event = new Webhook(process.env.WEBHOOK_SECRET)
  .verify(rawBody, headers);

// Zapisz zdarzenie i webhook-id w swoim trwałym skrzynce odbiorczej.
// Istniejące ID oznacza, że ta dostawa została już zaakceptowana.
// Zwróć 2xx po zapisie, a następnie przetwórz asynchronicznie.

Ponowne próby i historia dostaw

Zwróć odpowiedź 2xx w ciągu dziesięciu sekund po bezpiecznym zapisaniu żądania. Przetwarzaj dłuższe zadania asynchronicznie. Dostawy mogą przybyć więcej niż raz lub w nieprawidłowej kolejności. Próby ponownego wysłania zachowują to samo ID i treść, ale otrzymują świeżo podpisany znacznik czasu.

Błędy połączenia, HTTP 408, 429 i błędy serwera są automatycznie ponawiane, do dziesięciu prób łącznie, z rosnącymi opóźnieniami z jitterem (ok. 30 sekund początkowo, rosnące do około sześciu godzin). Inne nieudane odpowiedzi, w tym przekierowania, kończą się bez automatycznych ponowień. Napraw endpoint i wybierz Ponów dostawę dla nieudanej pracy.

Odśwież dostawy, aby zobaczyć status, liczbę prób i kod odpowiedzi. Historia jest przechowywana przez trzydzieści dni. Edycja adresu endpointu lub jego wyłączenie anuluje oczekujące dostawy. Usunięcie również usuwa historię dostaw. Żądanie już w locie może nadal przybyć.

Ochrona Twoich poufnych danych

Adresy URL, klucze podpisowe i zawartość alertów w kolejce są szyfrowane w pamięci. Udostępnienie klucza wyświetla go krótko w przeglądarce. Jeśli podejrzewasz, że klucz został ujawniony, odśwież go natychmiast, a następnie zaktualizuj odbiornik. Nowe próby podpisu używają nowego klucza; żądanie już w toku może nadal zawierać poprzedni podpis.

Skonfiguruj webhook