استقبال webhooks التعريف والتحقق منها في Go (المكتبة القياسية). أضف التعرّف على الزوار، وكشف الروبوتات، والإشارات الذكية إلى تطبيق Go الخاص بك في دقائق.
أضف SDK إلى مشروعك باستخدام مدير الحزم المفضّل لديك.
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 وإعداده.
publicKeystringمفتاحك العام من لوحة المعلومات — آمن لإرساله في المتصفحendpointstringعنوان URL مخصص لنقطة النهاية لعمليات النشر الموجَّهة عبر بروكسي — العنوان الصريح يتقدّم على regionregionstringمنطقة البيانات: us أو eutimeoutMsnumberمهلة استدعاء getResult() بأكمله، بالمللي ثانيةlinkedIdstringمعرّف الحساب الداخلي لديك للمستخدم المسجَّل دخوله، كي تُربط الزيارات التي تتشارك جهازًاtagstringتسمية حرة تُرفق بطلب التعريف، مثل checkout أو logindebugbooleanيسجّل دورة حياة النص البرمجي ونشاط الشبكة في وحدة تحكّم المتصفحscriptUrlstringتجاوز كامل لعنوان URL لنص الوكيل — للاستضافة الذاتية أو Subresource Integrityتعمّق أكثر مع مرجع API الكامل، وإعداد webhook، والأدلة المتقدمة.
مرجع API الكامل، وأدلة التكامل، وأفضل الممارسات.
تسليم الأحداث في الوقت الفعلي، ومخطط الحمولة، والتحقق من التوقيع.
أعدّ إشعارات الأحداث في الوقت الفعلي لكل عملية تعرّف على جهاز.
أضف بصمات الأجهزة إلى تطبيق Go الخاص بك في أقل من 5 دقائق.