Reddit API Kurulumu
Reddit entegrasyonu için admin walkthrough. Son-kullanıcı akışı: Bağlantılar → Reddit.
Genel bakış
| Form alanı | Options anahtarı |
|---|---|
| Client ID | reddit_client-id |
| Client Secret | reddit_client-secret |
| User Agent | reddit_user-agent |
| Status | reddit_integration_status |
ENV fallback: REDDIT_CLIENT_ID, REDDIT_CLIENT_SECRET, REDDIT_USER_AGENT.
User Agent zorunlu
Reddit API'si eksik veya jenerik User-Agent header'lı istekleri reddeder (ilk çağrıda bile 429 Too Many Requests). web:com.example.sosyabot:v3.43.6 (by /u/yourhandle) formunda anlamlı bir UA ayarla.
www.reddit.com/prefs/apps adım adım
1. Giriş yap ve app oluştur
App'in sahibi olmasını istediğin hesapla Reddit'e giriş yap, sonra https://www.reddit.com/prefs/apps'a git.
Sayfanın altındaki are you a developer? create an app...'a tıkla.
2. Formu doldur
- name: örn. "Sosyabot"
- type: web app (Sosyabot'un kullandığı OAuth code akışı için zorunlu)
- description: opsiyonel
- about url:
https://sosyabot.com - redirect uri:
https://app.sosyabot.com/api/v1/auth/reddit/callback
create app'a tıkla.
3. Client ID + Client Secret'ı al
Oluşturduktan sonra app'in app listende iki değerle birlikte görünür:
- Client ID: app adının altındaki kısa string (14 karakterli random string gibi görünür).
- Client Secret: secret etiketli.
Sonra edit'e tıklayarak secret'ı yeniden görebilirsin.
Sosyabot admin paneline yapıştırma
/admin/api-integration/reddit:
- Client ID: kısa string'i yapıştır.
- Client Secret: secret'ı yapıştır.
- User Agent:
web:com.sosyabot:v3.43.6 (by /u/reddit-handle'ın)gibi bir şey. Zorunlu — Sosyabot yalnızca son çare olarakSosyabot/1.0'a düşer. - Status: Enable.
- Save → Test credentials.
Hata: Reddit integration disabled: client id/secret not configured.
Doğrulama
/app/channels → Connect → Reddit → OAuth → identity submit mysubreddits read flair onayla. Bağlantı sonrası ekranda varsayılan subreddit seç. /app/publishing'den test bir self-post gönder (bazı subreddit'ler API submission'ları "approved submitters" ile sınırlar — r/test ile başla).
Sorun giderme
| Belirti | Sebep | Çözüm |
|---|---|---|
Reddit integration disabled: client id/secret not configured | Admin + ENV boş | 1-3. adımlar. |
İlk istekte 429 Too Many Requests | Jenerik / eksik User-Agent | Yukarıdaki uyarıya göre anlamlı User Agent ayarla. |
Submit SUBREDDIT_NOTALLOWED ile başarısız | Subreddit onaylanmamış hesaplardan API submission kabul etmiyor | Farklı subreddit seç veya kullanıcı hesabını mod'lara approve ettir. |
Haftalarca atalet sonra invalid_grant | Refresh token Reddit hesap ayarlarından iptal edilmiş olabilir | Kullanıcı /app/channels'tan reconnect yapar. |
ENV fallback
REDDIT_CLIENT_ID=<client id'in>
REDDIT_CLIENT_SECRET=<client secret'in>
REDDIT_USER_AGENT=web:com.sosyabot:v3.43.6 (by /u/yourhandle).env düzenledikten sonra ./service.sh restart api.