Lägg till SDK:n i ditt projekt med din föredragna pakethanterare.
npm install net/httpyarn add net/httppnpm add net/httpKom igång med den minimala konfigurationen.
package mainimport ( "fmt" "io" "net/http")func main() { http.HandleFunc("/webhook/tracio", func(w http.ResponseWriter, r *http.Request) { body, _ := io.ReadAll(r.Body) // verify r.Header.Get("X-Tracio-Signature") against body, then act fmt.Println(string(body)) w.WriteHeader(http.StatusOK) }) http.ListenAndServe(":8080", nil)}Produktionsklara mönster med felhantering, laddningstillstånd och avancerad konfiguration.
package mainimport ( "crypto/hmac" "crypto/sha256" "encoding/hex" "encoding/json" "io" "log" "net/http" "os" "strings")type Event struct { VisitorID string `json:"visitorId"` Bot struct { Result string `json:"result"` } `json:"bot"` Decision struct { RiskScore int `json:"riskScore"` } `json:"decision"`}// verify recomputes the HMAC-SHA256 over "<t>.<rawBody>" and compares it.func verify(body []byte, header, secret string) bool { parts := map[string]string{} for _, kv := range strings.Split(header, ",") { if p := strings.SplitN(kv, "=", 2); len(p) == 2 { parts[p[0]] = p[1] } } mac := hmac.New(sha256.New, []byte(secret)) mac.Write([]byte(parts["t"] + ".")) mac.Write(body) expected := hex.EncodeToString(mac.Sum(nil)) return hmac.Equal([]byte(expected), []byte(parts["v1"]))}func main() { secret := os.Getenv("TRACIO_WEBHOOK_SECRET") http.HandleFunc("/webhook/tracio", func(w http.ResponseWriter, r *http.Request) { body, _ := io.ReadAll(r.Body) if !verify(body, r.Header.Get("X-Tracio-Signature"), secret) { http.Error(w, "Invalid signature", http.StatusUnauthorized) return } var e Event if err := json.Unmarshal(body, &e); err != nil { http.Error(w, "Bad payload", http.StatusBadRequest) return } if e.Bot.Result == "bot" || e.Decision.RiskScore > 50 { log.Printf("flagging visitor %s (bot=%s risk=%d)", e.VisitorID, e.Bot.Result, e.Decision.RiskScore) } w.WriteHeader(http.StatusOK) }) log.Fatal(http.ListenAndServe(":8080", nil))}Alla tillgängliga alternativ för att initiera och konfigurera SDK:n.
publicKeystringDin publika nyckel från dashboarden — säker att skicka med i webbläsarenendpointstringAnpassad endpoint-URL för proxyroutade driftsättningar — en explicit URL vinner över regionregionstringDataregion: us eller eutimeoutMsnumberTimeout för hela getResult()-anropet, i millisekunderlinkedIdstringDitt interna konto-ID för den inloggade användaren, så att besök som delar enhet kan kopplastagstringFritt formulerad etikett kopplad till identifieringsbegäran, t.ex. checkout eller logindebugbooleanLoggar skriptets livscykel och nätverksaktivitet till webbläsarkonsolenscriptUrlstringFullständig åsidosättning av agentskriptets URL — för self-hosting eller Subresource IntegrityGå djupare med den fullständiga API-referensen, webhook-konfiguration och avancerade guider.
Fullständig API-referens, integrationsguider och bästa praxis.
Händelseleverans i realtid, nyttolastschema och signaturverifiering.
Konfigurera händelseaviseringar i realtid för varje enhetsidentifiering.
Lägg till enhetsfingerprinting i din Go-applikation på under 5 minuter.