Webhook'larAPI

Bir gönderinin yayınlandığını ya da yayınlanmadığını anında öğrenin

Bir URL'yi bir kez kaydedin; FoPost bir teslimat her sonuçlandığında onu çağırır. Her olay gönderi kimliğini, hesabı, platformu, kalıcı bağlantıyı veya hata metnini taşır; böylece sisteminiz sorgulama yapmadan tepki verir.

POST /v1/webhooks
curl -X POST https://api.fopost.com/v1/webhooks \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workspaceId": "9b2f6c1e-...",
    "url": "https://yourbrand.com/hooks/social",
    "events": ["delivery.published", "delivery.failed", "post.published", "post.failed"]
  }'

Sonuçlanınca tetiklenir

Hesap teslimatı başına bir olay; ağ onayladığı veya reddettiği anda gönderilir.

İmzalı

Her istek bir imza başlığı taşır, böylece bizden geldiğini doğrulayabilirsiniz.

Yeniden denenir

2xx dışındaki bir yanıt, olay bırakılmadan önce artan aralıklarla yeniden denenir.

Olaylar

Olaylar tüm yayın yaşam döngüsünü kapsar

delivery.published, bir ağ tek bir hesabın teslimatını kabul ettiğinde tetiklenir ve kalıcı bağlantıyı içerir. delivery.failed, gönderi yayınlanmayacağında tetiklenir ve platformun hata metnini içerir. post.published ve post.failed, tüm hesaplar sonuçlandıktan sonra gönderi başına bir kez tetiklenir.

Webhook Referansını Okuyun
delivery.published
{
  "event": "delivery.published",
  "data": {
    "postId": "7d3e0a52-...",
    "postAccountId": "a3c5e7f9-...",
    "accountId": "4a71d80b-...",
    "platform": "linkedin",
    "externalUrl": "https://linkedin.com/feed/update/..."
  },
  "timestamp": "2026-09-01T09:00:07Z"
}

delivery.published

Kalıcı bağlantı; saklamaya veya CMS'inizden geri bağlantı vermeye hazır.

delivery.failed

Ağın kendi hata mesajı; böylece tahmin etmek yerine nedeni düzeltirsiniz.

Çalışma alanı başına

Bir webhook tek bir çalışma alanına aittir ve yalnızca o çalışma alanının gönderilerini görür.

Doğrula

Harekete geçmeden önce yüke güvenin

Her istek, webhook'u oluşturduğunuzda dönen gizli anahtarla imzalanır. İmzayı ham gövde üzerinden hesaplayın, başlıkla karşılaştırın ve eşleşmeyen her şeyi reddedin. Hızlıca 2xx ile yanıt verin, işi sonra yapın.

İmza Doğrulamayı Görün
İşleyici
app.post('/hooks/social', async (req, res) => {
  const signature = req.header(SIGNATURE_HEADER) // header name is in the docs;
  if (!verify(req.rawBody, signature, process.env.WEBHOOK_SECRET)) {
    return res.status(401).end();
  }
  const { event, data } = req.body;
  await queue.add(event, data);
  res.status(200).end();
});

İmza başlığı

Oluşturma sırasında size verilen gizli anahtarla doğrulayın. Yenilemek için yeniden oluşturun.

Zaman damgalı

timestamp, eski tekrarları yok saymanızı ve olayları doğru sıralamanızı sağlar.

Kimliğe göre idempotent

Yeniden denemeler aynı olay kimliğini taşır, bu yüzden çift teslimatı ayıklamak kolaydır.

Yönet

Uç noktaları koddan oluşturun, listeleyin ve kaldırın

Webhook'lar sıradan API nesneleridir. Her ortam için bir tane oluşturun, nelerin kayıtlı olduğunu denetlemek için listeleyin ve artık ihtiyaç duymadıklarınızı silin. Geliştirme sırasında bir staging URL'sine yönlendirin ve tek çağrıyla production'a geçin.

Geliştirmeye Başlayın
Bir zamanlamaya göre, bir akış üzerinde ve ağlar arasında çalışan otomasyonlar

Uç noktaları listeleyin

GET /v1/webhooks, her URL'yi ve abone olduğu olayları gösterir.

Ortam başına

Staging için ayrı bir URL kaydedin; böylece test gönderileri asla production'a ulaşmaz.

webhooks kapsamı

Uç noktaları yönetmek kendi kapsamını gerektirir. Yalnızca yayın yetkisi olan bir anahtar uç nokta ekleyemez.

Webhook'lar hakkında sorular ve yanıtlar

Hangi olaylar mevcut?

Gönderi, teslimat, hesap, gelen kutusu ve otomasyon olayları. delivery.published ve delivery.failed hesap başına bir kez tetiklenir, yani üç ağa giden bir gönderi bunlardan en fazla üç tane üretir; post.published ve post.failed ise gönderi başına bir kez tetiklenir.

Bir webhook'u nasıl doğrularım?

Webhook'u oluşturun ve yanıttaki gizli anahtarı saklayın. Bu anahtarla ham istek gövdesi üzerinden bir imza hesaplayın ve her çağrıda imza başlığıyla karşılaştırın.

Uç noktam çalışmıyorsa ne olur?

2xx dışındaki her yanıt veya zaman aşımı artan aralıklarla yeniden denenir. Süre sınırının rahatça içinde kalmak için hızlıca 2xx ile yanıt verin ve olayı arka planda işleyin.

Yalnızca tek bir hesabın olaylarını alabilir miyim?

Teslimat olayları accountId ve platform bilgisini taşır, bu yüzden kendi tarafınızda filtreleyin. Webhook'lar tek bir hesaba değil, bir çalışma alanına göre kapsamlanır.

Gerçekten yayınlamadan test edebilir miyim?

Bir webhook'u istek yakalama URL'sine yönlendirin ve bir test hesabına gönderi planlayın. Olaylar her ortamda aynı görünür.

Webhook'lara gerçekten ihtiyacım var mı?

Hayır. GET /v1/posts/:id/deliveries aynı durumu istek üzerine döndürür. Webhook'lar sizi sorgulama zahmetinden kurtarır.

Webhook'lar ile bugün geliştirmeye başlayın

Başlamak ücretsizdir ve eksiksiz API dahildir. Bir anahtar oluşturun ve ilk çağrınızı dakikalar içinde yapın.

API Anahtarını Al