รับและตรวจสอบ webhook การระบุตัวตนใน Go (ไลบรารีมาตรฐาน) เพิ่มการระบุผู้เข้าชม การตรวจจับบอต และ smart signals เข้าสู่แอปพลิเคชัน Go ของคุณภายในไม่กี่นาที
เพิ่ม SDK เข้าสู่โปรเจกต์ของคุณด้วย package manager ที่คุณต้องการ
npm install net/httpyarn add net/httppnpm add net/httpเริ่มใช้งานได้ด้วยการตั้งค่าขั้นต่ำ
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)}รูปแบบพร้อมใช้งานจริงพร้อมการจัดการข้อผิดพลาด สถานะการโหลด และการกำหนดค่าขั้นสูง
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))}ตัวเลือกทั้งหมดสำหรับการเริ่มต้นและกำหนดค่า SDK
publicKeystringpublic key ของคุณจากแดชบอร์ด — ปลอดภัยที่จะส่งไปกับเบราว์เซอร์endpointstringURL endpoint ที่กำหนดเองสำหรับการติดตั้งแบบกำหนดเส้นทางผ่านพร็อกซี — URL ที่ระบุชัดจะมีผลเหนือ regionregionstringภูมิภาคข้อมูล: us หรือ eutimeoutMsnumberเวลาหมดเวลาของการเรียก getResult() ทั้งหมด เป็นมิลลิวินาทีlinkedIdstringID บัญชีภายในของคุณสำหรับผู้ใช้ที่ล็อกอินอยู่ เพื่อเชื่อมโยงการเข้าชมที่ใช้อุปกรณ์เดียวกันtagstringป้ายกำกับอิสระที่แนบไปกับคำขอระบุตัวตน เช่น checkout หรือ logindebugbooleanบันทึกวงจรชีวิตของสคริปต์และกิจกรรมเครือข่ายลงคอนโซลของเบราว์เซอร์scriptUrlstringแทนที่ URL ของสคริปต์เอเจนต์ทั้งหมด — สำหรับโฮสต์เองหรือใช้ Subresource Integrityเจาะลึกยิ่งขึ้นด้วยเอกสารอ้างอิง API ฉบับเต็ม การกำหนดค่า webhook และคู่มือขั้นสูง
เอกสารอ้างอิง API ฉบับเต็ม คู่มือการผสานรวม และแนวปฏิบัติที่ดีที่สุด
การส่งอีเวนต์แบบเรียลไทม์ สคีมาของ payload และการตรวจสอบลายเซ็น
กำหนดค่าการแจ้งเตือนอีเวนต์แบบเรียลไทม์สำหรับการระบุอุปกรณ์ทุกครั้ง
เพิ่ม device fingerprinting เข้าสู่แอปพลิเคชัน Go ของคุณภายในเวลาไม่ถึง 5 นาที