Mastodon API Kurulumu
Mastodon'un federe modeli her instance'ın kendi OAuth app credentials'ını verdiği anlamına gelir. Sosyabot bunu otomatik yönetir: yeni bir instance'a ilk bağlantıda backend POST <instance>/api/v1/apps çağırır ve elde edilen client_id/client_secret'ı mastodon_apps koleksiyonunda saklar. Son-kullanıcılar yalnızca instance domain'lerini yazıp onaylar.
/admin/api-integration/mastodon admin formu yalnızca dinamik kayıt sisteminden önceki legacy single-instance hesaplar için anlamlıdır.
Genel bakış
| Form alanı | Options anahtarı | Kullanım |
|---|---|---|
| Default instance URL (legacy) | mastodon_instance-url | Instance domain'i taşımayan legacy bağlantılar için fallback. |
| Default client key (legacy) | mastodon_client-key | Aynı legacy fallback. |
| Default client secret (legacy) | mastodon_client-secret | Aynı. |
| Status | mastodon_integration_status | Master enable/disable. |
ENV fallback: MASTODON_INSTANCE_URL, MASTODON_CLIENT_KEY, MASTODON_CLIENT_SECRET.
Sosyabot'un her instance'a gönderdiği OAuth callback URL:
https://app.sosyabot.com/api/v1/auth/mastodon/callbackDinamik kayıt nasıl çalışır
Bir kullanıcı ?instance=mastodon.social (veya başka bir domain) ile Mastodon connect başlattığında, Sosyabot:
mastodon.social'imastodon_appskoleksiyonunda arar.- Bulunmazsa Sosyabot app adı + redirect URI + scope'larla (
read write)POST https://mastodon.social/api/v1/appsçağırır. - Dönen client_id + client_secret'ı
mastodon_apps'a cache'ler. - Kullanıcıyı
https://mastodon.social/oauth/authorize?...'a yönlendirir. - Callback'te code'u access token ile takas eder.
Her instance ayrı kayıt alır; aynı instance'a sonraki bağlantılar cache'lenmiş credentials'ı yeniden kullanır.
Admin alanlarını ne zaman doldurman gerekir
Neredeyse hiçbir zaman. Şu durumlarda hariç bu sayfayı atla:
- Hard-coded single-instance credentials'a sahip pre-Sosyabot sisteminden veri taşıyorsan, VEYA
- Dinamik kaydı bozuk bir instance için credentials seed etmek istiyorsan.
Diğerleri için admin alanlarını boş bırak — dinamik akış her şeyi yönetir.
Sosyabot admin paneline yapıştırma (yalnızca legacy)
/admin/api-integration/mastodon:
- Default instance URL: örn.
https://mastodon.social. - Default client key: legacy client_id.
- Default client secret: legacy client_secret.
- Status: Enable.
- Save.
Test butonu yoktur.
Doğrulama
Bir kullanıcının /app/channels'tan gerçek bir Mastodon instance'ına bağlanmasını sağla. Instance'ında ilk kez biri o domain'e bağlandığında mastodon_apps koleksiyonunda bir satırın belirdiğini görürsün — bu dinamik kaydın çalıştığını onaylar.
Sorun giderme
| Belirti | Sebep | Çözüm |
|---|---|---|
Yeni bir instance'a ilk bağlantıda Mastodon registration failed: 503 | Instance down veya kaydı reddetti | Farklı instance dene; instance'ın status sayfasını kontrol et. |
Sosyabot'un BASE_URL'sini yükselttikten sonra redirect_uri_mismatch | Her cache'lenmiş mastodon_apps satırı eski URL'e pinned | Etkilenen satırları mastodon_apps'tan sil; bir sonraki bağlantı yeni URL ile yeniden kayıt yapar. |
| Kullanıcı private/whitelisted instance kullanmak istiyor | Sosyabot'un app adı izin verilmiyor olabilir | Instance'ın app kayıt politikasını kontrol et; bazıları manuel onay ister. |
ENV fallback
MASTODON_INSTANCE_URL=https://mastodon.social # legacy default
MASTODON_CLIENT_KEY=
MASTODON_CLIENT_SECRET=.env düzenledikten sonra ./service.sh restart api.