Discord API Kurulumu
Discord entegrasyonu için admin walkthrough. Son-kullanıcı akışı: Bağlantılar → Discord.
Genel bakış
| Form alanı | Options anahtarı |
|---|---|
| Client ID | discord_client-id |
| Client Secret | discord_client-secret |
| Bot Token | discord_bot-token |
| Status | discord_integration_status |
ENV fallback: DISCORD_CLIENT_ID, DISCORD_CLIENT_SECRET, DISCORD_BOT_TOKEN.
Discord = OAuth + Bot
Discord üç secret gerektirir: bir OAuth Client ID/Secret çifti (kullanıcılar Sosyabot'u yetkilendirebilsin) artı bir Bot Token (Sosyabot bot'un adına mesaj gönderebilsin).
discord.com/developers/applications adım adım
1. Yeni application oluştur
https://discord.com/developers/applications → New Application → adlandır (örn. "Sosyabot").
2. OAuth2'yi yapılandır
App'in sol sidebar'ında OAuth2'ye tıkla.
- Redirects: ekle
https://app.sosyabot.com/api/v1/auth/discord/callback - Client ID: OAuth2 sayfasının tepesindeki değeri kopyala.
- Client Secret: ilk seferinde Reset Secret'e tıkla → görünen değeri kopyala (Discord bir kez gösterir).
3. Bot ekle
Sol sidebar → Bot → Add Bot (onayla).
- Privileged Gateway Intents: Sosyabot Presence veya Members intent'lerine ihtiyaç duymaz; kapalı bırak.
- Bot Token: taze token oluşturmak için Reset Token'a tıkla, anında kopyala. Discord bot token'ı yalnızca reset anında gösterir.
Token güvenliği
Bot token'a sahip olan herkes bot'u kontrol eder. Şifre gibi davran. Sızdırılırsa Reset Token sızdırılanı geçersiz kılar ve her bağlı guild'in bot'u yeniden eklemesini zorlar.
4. Davet izinlerini yapılandır
Sol sidebar → OAuth2 → URL Generator:
- Scopes:
bot'u işaretle. - Bot Permissions: Send Messages'ı işaretle (gerekirse ek izinler).
Oluşturulan URL'i kopyala — bu, adminlerin sonra bot'u bir guild'e davet etmek için kullanacağı install URL'idir.
Sosyabot admin paneline yapıştırma
/admin/api-integration/discord:
- Client ID: OAuth2 sayfasından yapıştır.
- Client Secret: görünen secret'ı yapıştır.
- Bot Token: bot token'ı yapıştır.
- Status: Enable.
- Save → Test credentials.
Hata: Discord integration disabled: client id/secret/bot token not configured.
Doğrulama
/app/channels→ Connect → Discord. Discord seni bot'u bir guild'e davet etmeye yönlendirir — yönettiğin bir guild'i seç.- OAuth scope'larını + bot davetini onayla. Bot bir guild admin'i tarafından onaylanabilir olmalı.
- Sosyabot o guild'deki yazılabilir text kanallarını listeler; birini varsayılan olarak seç.
/app/publishing'ten test mesajı gönder ve Discord kanalında göründüğünü doğrula.
Sorun giderme
| Belirti | Sebep | Çözüm |
|---|---|---|
Discord integration disabled: client id/secret/bot token not configured | Admin + ENV'de üçünden biri eksik | Üçünü de sağla; Discord OAuth'a ek olarak bot token gerektirir. |
Bot davet Missing Permissions gösteriyor | Kullanıcının hedef guild'de Manage Server izni yok | Yönettiği bir guild seç veya bir guild admin'i bot'u onaylasın. |
| Connect başarılı ama kanal listelenmiyor | Bot davet edildi ama her kanalda Send Messages eksik | Discord'da kanal izinlerini ayarla; bir kanalda @bot'u pingleyerek test et. |
Aniden 401 Unauthorized | Bot token reset veya app silindi | Developer Portal'da bot token'ı yeniden oluştur ve admin paneli güncelle; mevcut kanal bindings çalışmaya devam eder ama güncellenene kadar mesaj gönderme başarısız. |
ENV fallback
DISCORD_CLIENT_ID=<client id'in>
DISCORD_CLIENT_SECRET=<client secret'in>
DISCORD_BOT_TOKEN=<bot token'ın>.env düzenledikten sonra ./service.sh restart api.