Bu rehberde: Ghost sitenizde bir özel entegrasyon (custom integration) oluşturup Admin API anahtarını OrqLabs'a girersiniz. Yapay zekânın yazdığı yazılar Ghost'a taslak, planlı veya yayında olarak düşer; isterseniz bülten olarak e-postayla gönderilir. Yeni yazı yayınlandığında ve yeni üye kaydolduğunda iş akışı başlar; webhook'ları OrqLabs sizin yerinize kurar.
⏱ 10 dakika
Kimlik kartı
| Alan | Değer |
|---|---|
| Sağlayıcı anahtarı | GHOST |
| Kategori | CMS / blog ve bülten |
| Kimlik doğrulama | Admin API anahtarı (id:secret) → her istek için 5 dakikalık JWT |
| Kapsam | Proje bazlı |
| Webhook | Evet – bağlarken otomatik kurulur, imzalıdır (X-Ghost-Signature) |
| Kutu | Ghost (app.ghost) |
| Tetikleyiciler | Entegrasyon olayı → GHOST · Post published, GHOST · Member added |
Ne işe yarar?
Ghost kutusunun işlemleri:
| İşlem | Ne yapar | Etki |
|---|---|---|
| Create post | Başlık, içerik (HTML veya Markdown), durum, yayın tarihi, etiketler, öne çıkan görsel, özet, erişim (herkese açık / üyeler / ücretli) ile yazı oluşturur. Durum seçilmezse taslak olur. | Yayın |
| Update post | Var olan yazının yalnızca doldurduğunuz alanlarını değiştirir (ör. taslağı yayına almak). | Yayın |
| Get post | Tek yazıyı HTML ve düz metin içeriğiyle okur. | Okuma |
| List posts | Yazıları listeler (durum filtresi, Ghost NQL filtresi, ör. tag:haberler). | Okuma |
| Add member | Üye (abone) ekler; etiket ve bülten aboneliği verir. Üye zaten varsa ad, not, etiket ve bültenleri birleştirir (hiçbirini silmez). | Değişiklik |
Ayrıntılar:
- İçerik: HTML etiketi yoksa Markdown kabul edilip HTML'e çevrilir; Ghost HTML'i kendi editör kartlarına dönüştürür (
?source=html). Bu dönüşümde bazı özel biçimlendirmeler sadeleşebilir. - Etiketler: adla verilir, olmayanlar oluşturulur; ilk etiket birincil etikettir. Güncellemede verdiğiniz liste mevcut etiketlerin yerini alır.
- Bülten gönderimi yalnızca açıkça istenirse yapılır: Send as newsletter alanına bülten kısa adını (slug, ör.
default-newsletter) yazar ve durumu Published veya Scheduled seçerseniz Ghost yazıyı abonelere e-postayla gönderir. Alan boşsa yazı yalnızca sitede yayınlanır. Newsletter recipients ile tüm aboneler, yalnızca ücretsiz veya yalnızca ücretli üyeler seçilir. - Öne çıkan görsel: adres olduğu gibi kullanılır. Görsel adresi geçici ise (süresi dolan bağlantılar) gelişmiş ayarlardan Upload feature image to Ghost'u açın; görsel Ghost'a kopyalanır.
- Test çalıştırmaları: editördeki test modunda yazı oluşturma, güncelleme ve üye ekleme çalıştırılmaz; okuma işlemleri çalışır.
Ön koşullar
- Ghost 5.x (Ghost(Pro) veya kendi sunucunuz).
- Ghost'ta Owner veya Administrator rolü (özel entegrasyon yalnızca bu rollerle oluşturulur).
- Bülten göndereceksiniz: Ghost'ta e-posta gönderiminin (Ghost(Pro) veya Mailgun) yapılandırılmış olması.
Adım adım kurulum
A) Ghost'ta özel entegrasyon
- Ghost Admin → Settings (dişli) → Advanced → Integrations.
- Custom sekmesinde Add custom integration → ad:
OrqLabs→ Add. - Açılan pencereden iki değeri kopyalayın:
- API URL – ör.
https://ornekblog.ghost.ioveyahttps://blog.ornek.com. - Admin API key –
6501a2b3…:9f8e7d…biçiminde, iki nokta üst üsteyle ayrılmış iki parça.
- API URL – ör.
Dikkat: Aynı penceredeki Content API key (iki nokta içermez) yalnızca okuma içindir ve çalışmaz.
B) OrqLabs'ta bağlama
- Entegrasyonlar → Ghost → Bağla → Proje seçin.
- Admin API URL: A adımındaki API URL.
- Admin API key: Admin API anahtarı → Bağla.
OrqLabs site başlığını okuyup anahtarı bir yazı listesiyle doğrular, ardından iki webhook'u (post.published, member.added) bu entegrasyona kendisi ekler. Ghost'taki entegrasyon sayfasında Webhooks bölümünde OrqLabs · post.published ve OrqLabs · member.added görünür. Her teslimat OrqLabs'ın ürettiği gizli anahtarla imzalanır ve imzası doğrulanmayan istekler reddedilir.
Örnek iş akışları
1) SEO önerisinden Ghost taslağı
- Zamanlama – haftada bir.
- SEO ve Trafik ajanı (rehber) – içerik özetleri (
contentBriefs). - Metin üret –
Bu özete göre Markdown blog yazısı yaz: {{ $json.brief }}→text. - Ghost → Create post – Title
{{ $json.title }}, Content{{ $json.text }}, Status boş (taslak), TagsSEO. - Ekibe bildir –
Taslak hazır: {{ $json.editUrl }}.
2) Onaylı yayın + bülten
… Create post (taslak) → Onay iste → onaylandı → Ghost → Update post (Post ID {{ $json.id }}, Status Published, Send as newsletter default-newsletter).
3) Yeni üyeye hoş geldin akışı
Entegrasyon olayı (Ghost, GHOST · Member added) → Metin üret (kişiselleştirilmiş hoş geldin mesajı) → e-posta gönderimi veya CRM'e yaz. Çıktıda email, name, status (free / paid), labels, newsletters bulunur.
4) Form kaydını Ghost üyesi yapma
Entegrasyon olayı (ör. Typeform veya Tally formu) → Ghost → Add member (Email {{ $json.email }}, Name {{ $json.name }}, Labels webinar, Newsletters Haftalık bülten).
Limitler
| Konu | Sınır |
|---|---|
| Liste | İstek başına en fazla 100 yazı |
| Özet | 300 karakter (fazlası kesilir) |
| Görsel yükleme | 20 MB (Ghost'un kendi sınırı da geçerlidir) |
| Webhook | Ghost başarısız teslimatları yeniden göndermez; OrqLabs geçici olarak erişilemezse o olay kaçabilir |
| Sayfalar (pages) | Desteklenmez; yalnızca yazılar (posts) |
Bağlantıyı test etme
Bağlantıyı test et site başlığını ve Ghost sürümünü gösterir. Webhook'ların kurulup kurulmadığını Ghost'taki entegrasyon sayfasından kontrol edin; kurulamadıysa hata entegrasyon kartında görünür.
Kimlik bilgilerini yenileme
Ghost'taki entegrasyon sayfasında Regenerate ile yeni Admin API anahtarı üretin (eskisi hemen geçersiz olur) ve OrqLabs'ta Kimlik bilgileri → Güncelle ile girin. Webhook'lar anahtara değil Ghost entegrasyonuna bağlı olduğu için çalışmaya devam eder. Ghost'taki özel entegrasyonu silerseniz webhook'ları da silinir; o zaman OrqLabs'ta bağlantıyı kesip yeniden bağlayın.
Sık karşılaşılan hatalar
| Hata | Olası neden | Çözüm |
|---|---|---|
CONFIG – "Admin API key must look like :" | Content API anahtarı girildi | Admin API key'i kopyalayın |
AUTH – 401 "Invalid token" | Anahtar yenilendi veya entegrasyon silindi | Yeni anahtarı girin |
AUTH – 401 "Token issued too far in the past/future" | Sunucu saati çok kaymış (kendi sunucunuz) | Ghost sunucusunun saatini senkronize edin (NTP) |
NOT_FOUND – "response is not JSON" | API URL yanlış (ör. yönetim paneli adresi) | Entegrasyon penceresindeki API URL'yi girin |
INVALID – 422 "Member already exists" | Üye var ve Update if the member exists kapalı | Seçeneği açın |
INVALID – newsletter "…" not found | Bülten adı/kısa adı yanlış | Hata mesajındaki listeden birini yazın |
INVALID – "Target URL has already been used" | Eski OrqLabs webhook'ları kalmış | Ghost'ta entegrasyonun webhook'larını silip yeniden bağlayın |
Sık sorulan sorular
Yanlışlıkla bülten gönderir mi? Hayır. Bülten yalnızca Send as newsletter dolu ve durum Published / Scheduled iken gider. Taslaklarda bu alan yok sayılır.
Ücretli üyeler için yazı yayınlayabilir miyim? Evet; gelişmiş ayarlarda Access → Paid members only.
Mevcut üyenin etiketleri silinir mi? Hayır. Add member mevcut etiket ve bülten aboneliklerine yenilerini ekler, hiçbirini kaldırmaz.