מרכז ידע English כניסה למערכת
נושאים

איך מקבלים עדכונים ב-Webhooks ומאמתים חתימה

עודכן 1 באוקטובר 2026 דקת קריאה

Webhook שולח לשרת שלכם בקשת POST חתומה ברגע שמשהו קורה, למשל שיחה שהסתיימה.

  1. פתחו את תפריט המשתמש, בחרו "הגדרות סביבת עבודה" ואז "Webhooks"

  2. לחצו "הוספת יעד"

  3. תנו שם, הזינו את "כתובת היעד" ובחרו "אירועים לשליחה"

    לשיחות: voice.call_started ו-voice.call_completed.

    החלונית יעד חדש: שם, כתובת היעד ורשימת האירועים לשליחה, עם voice.call_completed מסומן
  4. לחצו "יצירת יעד"

  5. בחלון "היעד נוצר" העתיקו את "סוד חתימה"

    שמרו אותו בשרת שלכם. איתו מאמתים שהבקשה הגיעה מאיתנו.

  6. לחצו "שליחת אירוע בדיקה" ובדקו שהשרת קיבל אותו

מה השרת מקבל?

בקשה לדוגמה
POST /webhooks/direnium HTTP/1.1
Content-Type: application/json
X-Direnium-Event: voice.call_completed
X-Direnium-Signature: t=<TIMESTAMP>,v1=<SIGNATURE>

{
  "event": "voice.call_completed",
  "data": {
    "callId": "call_3fa8e9d2",
    "direction": "outbound",
    "status": "completed",
    "durationSeconds": 42,
    "summary": "Customer asked to reschedule to Tuesday.",
    "sentiment": "positive"
  },
  "deliveredAt": "<ISO-TIME>"
}

המעטפת תמיד זהה: event, data ו-deliveredAt. התוכן של data משתנה לפי האירוע. החזירו סטטוס 2xx לאישור קבלה. שליחה שנכשלה נשלחת שוב עד 5 פעמים, בהשהיות הולכות וגדלות.

איך מאמתים את החתימה?

הכותרת X-Direnium-Signature כוללת חותמת זמן t וחתימה v1. החתימה היא HMAC-SHA256 של חותמת הזמן, נקודה, וגוף הבקשה כפי שהתקבל, עם סוד החתימה של היעד.

אימות ב-Node.js
const crypto = require('crypto');

function isFromDirenium(rawBody, signatureHeader, secret) {
  const parts = Object.fromEntries(signatureHeader.split(',').map((part) => part.split('=')));
  const expected = crypto.createHmac('sha256', secret).update(`${parts.t}.${rawBody}`).digest('hex');
  return expected.length === parts.v1.length
    && crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
}

ראו גם: איך יוצרים ומנהלים מפתחות API ואיך מפעילים שיחות דרך API.

מאמרים נוספים בנושא

    ↑↓ניווט Enterפתיחה Escסגירה מחפש במאמרים בעברית · English