Skip to content

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-urlInstance domain'i taşımayan legacy bağlantılar için fallback.
Default client key (legacy)mastodon_client-keyAynı legacy fallback.
Default client secret (legacy)mastodon_client-secretAynı.
Statusmastodon_integration_statusMaster 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/callback

Dinamik kayıt nasıl çalışır

Bir kullanıcı ?instance=mastodon.social (veya başka bir domain) ile Mastodon connect başlattığında, Sosyabot:

  1. mastodon.social'i mastodon_apps koleksiyonunda arar.
  2. Bulunmazsa Sosyabot app adı + redirect URI + scope'larla (read write) POST https://mastodon.social/api/v1/apps çağırır.
  3. Dönen client_id + client_secret'ı mastodon_apps'a cache'ler.
  4. Kullanıcıyı https://mastodon.social/oauth/authorize?...'a yönlendirir.
  5. 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:

  1. Default instance URL: örn. https://mastodon.social.
  2. Default client key: legacy client_id.
  3. Default client secret: legacy client_secret.
  4. Status: Enable.
  5. 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

BelirtiSebepÇözüm
Yeni bir instance'a ilk bağlantıda Mastodon registration failed: 503Instance down veya kaydı reddettiFarklı instance dene; instance'ın status sayfasını kontrol et.
Sosyabot'un BASE_URL'sini yükselttikten sonra redirect_uri_mismatchHer cache'lenmiş mastodon_apps satırı eski URL'e pinnedEtkilenen satırları mastodon_apps'tan sil; bir sonraki bağlantı yeni URL ile yeniden kayıt yapar.
Kullanıcı private/whitelisted instance kullanmak istiyorSosyabot'un app adı izin verilmiyor olabilirInstance'ı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.

İlgili