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.
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 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{
"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.
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ünapp.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.
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
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?
Bir webhook'u nasıl doğrularım?
Uç noktam çalışmıyorsa ne olur?
Yalnızca tek bir hesabın olaylarını alabilir miyim?
Gerçekten yayınlamadan test edebilir miyim?
Webhook'lara gerçekten ihtiyacım var mı?
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