Listmonk API Kurulumu
Kullanıcı başına OAuth entegrasyonlarının aksine Listmonk tek paylaşımlı service-account entegrasyonudur. Adminler Sosyabot'u tek bir Listmonk dağıtımına yönlendirir ve credentials sağlar; Listmonk kanalı bağlayan her çalışma alanı kullanıcısı bu credentials'ı yeniden kullanır.
Son-kullanıcı akışı: Bağlantılar → Listmonk.
Genel bakış
| Form alanı | Options anahtarı | Zorunlu |
|---|---|---|
| Listmonk URL | listmonk_base-url | Evet |
| API Key (tercih edilen) | listmonk_api-key | API Key VEYA username/password'den biri |
| Basic-auth username (fallback) | listmonk_username | API Key boşsa kullanılır |
| Basic-auth password (fallback) | listmonk_password | API Key boşsa kullanılır |
| Status | listmonk_integration_status | — |
ENV fallback: LISTMONK_BASE_URL, LISTMONK_API_KEY, LISTMONK_USERNAME, LISTMONK_PASSWORD.
Listmonk dağıtımında adım adım
1. Listmonk'u kur (yoksa)
Listmonk self-hosted bir newsletter yöneticisidir — install docs için https://listmonk.app'e bak. Sosyabot Listmonk v3.0+ (API token modeli) destekler.
2. API token oluştur
Listmonk admin UI'sinde: Admin → Users → API tokens → New token.
- Name: örn. "Sosyabot"
- User: minimum list view ve campaign create + status update izinleri olan bir kullanıcı seç veya oluştur.
- Oluşturulan token'ı kopyala (Listmonk bir kez gösterir).
API token vs basic auth
API token tercih edilir — bireysel iptal edilebilir ve insan admin kullanıcısı ile şifre paylaşmaz. Basic auth (username/password) yalnızca eski Listmonk sürümleri için fallback olarak vardır ve API Key ayarlandığında görmezden gelinir.
3. Public origin'i onayla
Sosyabot'un vuracağı origin'i bul — genellikle https://newsletter.example.com. Trailing slash yok. Sosyabot /api/lists gibi yolları otomatik ekler.
Sosyabot admin paneline yapıştırma
/admin/api-integration/listmonk:
- Listmonk URL: public origin.
- API Key: API token'ı yapıştır (tercih edilen).
- (Listmonk pre-v3'te değilsen username/password'ü atla.)
- Status: Enable.
- Save → Test connection butonu
GET /api/listsçağırır ve HTTP 200 / başarısızlığı raporlar.
Hata mesajları Listmonk not configured: set LISTMONK_BASE_URL plus LISTMONK_USERNAME/PASSWORD or LISTMONK_API_KEY (or admin panel) der.
Doğrulama
/app/channels → Connect → Listmonk. Sosyabot GET /api/v1/social/listmonk/lists çağırır ve Listmonk dağıtımındaki mevcut list'leri gösterir. Kullanıcı bir veya birkaç tane seçer; kanal ID'si listmonk:<list-id-1>,<list-id-2>'dir.
/app/publishing'ten test bir kampanya gönder ve Listmonk'un Campaigns görünümünde running durumuyla göründüğünü doğrula.
Sorun giderme
| Belirti | Sebep | Çözüm |
|---|---|---|
Listmonk not configured: ... | Hem admin hem ENV gerekli anahtarlardan eksik | Listmonk URL artı ya API Key ya da username + password ayarla. |
Test connection 401 döner | Yanlış API token / username / password | Listmonk'ta token'ı yeniden ver; tekrar yapıştır. |
Test connection 404 döner | Yanlış base URL — genellikle trailing path veya trailing slash | Çıplak origin kullan (örn. https://newsletter.example.com, /admin yok, trailing / yok). |
| Kampanya oluşturuldu ama hiç gönderilmedi | Sosyabot status: running ile oluşturur — Listmonk teslimatı yönetir | Listmonk'un kendi SMTP / SES yapılandırmasını kontrol et. Sosyabot yalnızca kuyruğa alır. |
ENV fallback
LISTMONK_BASE_URL=https://newsletter.example.com
LISTMONK_API_KEY=<token'ın>
# VEYA (pre-v3 Listmonk için):
LISTMONK_USERNAME=<admin user>
LISTMONK_PASSWORD=<admin pass>.env düzenledikten sonra ./service.sh restart api.