Webhooks

احصل على إشعارات فورية عند اكتمال المهام أو فشلها

نظرة عامة

Webhooks allow you to receive HTTP callbacks when your image or video generation tasks complete. Instead of polling for results, you can set up a webhook endpoint to receive automatic notifications.

الأحداث المتاحة
  • job.completedTriggered when a task completes successfully
  • job.failedTriggered when a task fails
نقاط نهاية API
GET/api/v1/webhooks

List all your webhook configurations

مثال على الرد:

{
  "success": true,
  "data": [
    {
      "id": 1,
      "url": "https://your-server.com/webhook",
      "events": ["job.completed", "job.failed"],
      "status": "active"
    }
  ]
}
POST/api/v1/webhooks

Create a new webhook endpoint

مثال للطلب:

{
  "url": "https://your-server.com/webhook",
  "events": ["job.completed", "job.failed"],
  "secret_key": "your-secret-key"
}

المُعاملات:

معاملالنوعمطلوبوصف
urlstringمطلوبYour webhook endpoint URL
eventsstring[]مطلوبEvents to subscribe to
secret_keystringاختياريSecret for signature verification

مثال على الرد:

{
  "success": true,
  "data": {
    "id": 1,
    "url": "https://your-server.com/webhook",
    "events": ["job.completed", "job.failed"],
    "status": "active"
  }
}
DELETE/api/v1/webhooks/{id}

Delete a webhook endpoint

مثال على الرد:

{
  "success": true,
  "data": { "id": 1 }
}
حمولة Webhook
صيغة إشعارات الويب هوك المرسلة إلى نقطة النهاية الخاصة بك
رأس الصفحةوصف
X-Nano-TimestampUnix timestamp of the request
X-Nano-SignatureHMAC-SHA256 signature for verification

مثال الحمولة:

{
  "event": "job.completed",
  "task_id": "task_xxx",
  "task_type": "image",
  "status": "completed",
  "data": {
    "url": "https://cdn.example.com/image.png",
    "credits_charged": 6
  },
  "timestamp": "2024-12-23T10:00:00Z"
}
التحقق من التوقيع
const crypto = require('crypto');

function verifySignature(payload, signature, secret, timestamp) {
  const message = `${timestamp}.${JSON.stringify(payload)}`;
  const expectedSig = crypto
    .createHmac('sha256', secret)
    .update(message)
    .digest('hex');
  return `v1=${expectedSig}` === signature;
}
Nano Banana Pro API