İki entegrasyon yolu
Aynı içeriğe iki farklı yönden ulaşırsınız. İkisini birlikte de kullanabilirsiniz.
Seomio API
Siteniz Seomio'ya gelir, yayınlanmış içerikleri okur. Sitenizde yazma tarafı kurmanız gerekmez.
- İki uç nokta: liste + detay
- secret key ile kimlik
- Statik/JAMstack siteler için ideal
Webhook
Seomio içeriği üretir üretmez sitenizin endpoint'ine gönderir. Yayın, güncelleme ve silme otomatik yansır.
- Tek endpoint: create / update / delete
- Kendi API anahtarınız
- İçerik sizin veritabanınızda durur
Hangisini seçmeliyim
Kararı çoğunlukla tek bir soru belirler: içerik kimin veritabanında dursun?
| Ölçüt | Seomio API (pull) | Webhook (push) |
|---|---|---|
| İçerik nerede durur | Seomio'da | Sizin veritabanınızda |
| Sitenizde geliştirme | Liste + detay sayfası | Tek POST endpoint'i |
| Yayın gecikmesi | Önbelleğiniz kadar | Anında |
| Silme senkronu | Liste yenilenince düşer | action: "delete" isteğiyle anında |
| Seomio erişimi kesilirse | Blog sayfası boş kalabilir | İçerik sizde kalır |
| Kimlik | secret key (siz gönderirsiniz) | kendi API anahtarınız (Seomio gönderir) |
Hazır entegrasyonunuz varsa hiçbirine gerek yok
Hızlı başlangıç
Her iki yolun da en kısa hâli.
Seomio API — ilk isteğiniz
curl -X GET "https://api.seomio.com.tr/api/public/blog?limit=3" \
-H "x-secret-key: SIZIN_SECRET_KEYINIZ"Webhook — en küçük alıcı
// Sitenizde tek bir endpoint yeterli
app.post("/seomio-webhook", (req, res) => {
const b = req.body;
if (b.action === "delete") {
removePost(b.externalId);
return res.json({ id: b.externalId, deleted: true });
}
const post = upsertPost(b); // create + update
res.json({ id: String(post.id) }); // id döndürmek şart
});- 1
Yönünüzü seçin
İçeriği çekecekseniz Seomio API, size gönderilmesini istiyorsanız Webhook. - 2
Anahtarı hazırlayın
API için panelden Secret Key'i alın; webhook için kendi anahtarınızı üretip panele girin. - 3
Test edin
API'yi API Playground ekranından, webhook'u Yayın Entegrasyonu ekranındaki test düğmesinden deneyin.
Anahtarlar ve kavramlar
İki entegrasyonda da geçen, sık karıştırılan terimler.
| Alan | Tip | Açıklama |
|---|---|---|
| Secret Key | Seomio → size verir | Çalışma alanınızın okuma anahtarı. Siz Seomio API'sine istek atarken x-secret-key başlığında gönderirsiniz. Panel → Ayarlar → Çalışma Alanı. |
| API Key (webhook) | siz belirlersiniz | Webhook entegrasyonunda Seomio sizin endpoint'inize istek atarken Authorization başlığında gönderir. Değerini siz üretip panele yazarsınız. |
| externalId | string | Webhook'ta, sizin sisteminizdeki kayıt id'si. Create yanıtında döndürdüğünüz değer; güncelleme ve silmede size geri gelir. |
| slug | string | Yazının URL parçası. Kendi sitenizde de aynısını kullanmanız iç linkleri doğru çalıştırır. |
| content | string (HTML) | Tam HTML gövde. Görseller CDN üzerinden mutlak URL, yapısal veri (JSON-LD) ve iç linkler içine gömülü gelir. |
Sık sorulanlar
İki yöntemi birlikte kullanabilir miyim?
Evet. Yayını webhook ile alıp, ayrıca API'den liste çekerek arşiv/sitemap doğrulaması yapan kurulumlar var. Yayın platformu olarak yalnızca bir tanesi seçilir; API okuması bundan bağımsızdır.
İçerikler benim mi?
Evet. Üretilen yazılar, görseller ve meta verileri kendi ticari faaliyetinizde kullanabileceğiniz içeriklerdir; sitenizde barındırmanızda bir kısıt yoktur.
Görselleri kendi sunucuma indirmem gerekir mi?
Hayır. Kapak ve gövde görselleri CDN üzerinden mutlak URL ile gelir ve kimlik doğrulama gerektirmez. İsterseniz indirip kendi medya kitaplığınıza alabilirsiniz.
Seomio'da sildiğim yazı sitemden de silinir mi?
Webhook kullanıyorsanız evet: endpoint'inize action: "delete" isteği gider. WordPress entegrasyonunda yazı çöp kutusuna taşınır. API (pull) kullanıyorsanız yazı listeden düşer, siz de önbelleğinizi tazelediğinizde sitenizden kalkar.
Aynı yazı sitemde iki kez oluştu, neden?
Webhook alıcınız create yanıtında id döndürmüyordur. Seomio bu id'yi saklayamayınca her güncellemeyi yeni kayıt olarak gönderir. Webhook dokümanındaki "Beklenen yanıt" bölümüne bakın.
Uç noktalar değişirse ne olur?
Mevcut alanlar korunarak yeni alanlar eklenir. Entegrasyonunuzu, tanımadığı alanları yok sayacak şekilde yazmanız yeterlidir.