Recevez et vérifiez les webhooks d'identification en Go (bibliothèque standard). Ajoutez l'identification des visiteurs, la détection des bots et les smart signals à votre application Go en quelques minutes.
Ajoutez le SDK à votre projet avec votre gestionnaire de packages préféré.
npm install net/httpyarn add net/httppnpm add net/httpDevenez opérationnel avec la configuration minimale.
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)}Des modèles prêts pour la production avec gestion des erreurs, états de chargement et configuration avancée.
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))}Toutes les options disponibles pour initialiser et configurer le SDK.
publicKeystringVotre clé publique depuis le tableau de bord — sans risque dans le navigateurendpointstringURL d'endpoint personnalisée pour les déploiements routés par proxy — une URL explicite prime sur regionregionstringRégion des données : us ou eutimeoutMsnumberDélai d'expiration de l'appel getResult() complet, en millisecondeslinkedIdstringVotre ID de compte interne pour l'utilisateur connecté, afin de lier les visites partageant un appareiltagstringLibellé libre attaché à la requête d'identification, par ex. checkout ou logindebugbooleanJournalise le cycle de vie du script et l'activité réseau dans la console du navigateurscriptUrlstringRemplacement complet de l'URL du script agent — pour l'auto-hébergement ou Subresource IntegrityAllez plus loin avec la référence API complète, la configuration des webhooks et les guides avancés.
Référence API complète, guides d'intégration et bonnes pratiques.
Livraison d'événements en temps réel, schéma de la charge utile et vérification de signature.
Configurez des notifications d'événements en temps réel pour chaque identification d'appareil.
Ajoutez le device fingerprinting à votre application Go en moins de 5 minutes.