Instagram API Kurulumu
Business Login for Instagram (Meta'nın "Instagram API with Instagram Login" akışı) için admin walkthrough. Son-kullanıcı akışı: Bağlantılar → Instagram.
Bu sayfayı doldurduğunda Connect → Instagram kullanıcıyı instagram.com'a götürür: doğrudan Instagram hesabıyla giriş yapar, facebook.com'u hiç görmez ve Facebook Page gerekmez. Boş bırakırsan Instagram sessizce eski Facebook-Page rotasına düşer — bkz. Facebook API Kurulumu. İki rota aynı anda canlıdır; callback yolu ikisinde de aynıdır.
Genel bakış
| Form alanı | Options anahtarı |
|---|---|
| Instagram App ID | instagram_app-id |
| Instagram App Secret | instagram_app-secret |
| Status | instagram_integration_status |
ENV fallback: INSTAGRAM_APP_ID + INSTAGRAM_APP_SECRET.
Bu, Facebook App ID'si değildir
Meta, Instagram Login için app'in Instagram ürünü altında ayrı bir app id/secret verir. Settings → Basic'teki Facebook App ID'si instagram.com/oauth/authorize tarafından reddedilir. Yalnızca /admin/api-integration/facebook'teki Facebook çiftini doldurmak bu sayfayı yapılandırmış saymaz.
developers.facebook.com adım adım
1. Meta app'ini aç
https://developers.facebook.com → My Apps. Facebook Login'i tutan Business tipi app'i yeniden kullanabilirsin — yalnızca kimlik bilgileri ayrıdır — ya da yeni bir app oluştur.
2. Instagram ürününü ekle
Add Product → Instagram, sonra Instagram → API setup with Instagram business login'i aç.
3. Redirect URI'yi kaydet
API setup with Instagram business login → Business login settings altında:
- OAuth Redirect URIs: alan adını sabitlemeyin.
/admin/api-integration/instagramadmin sayfasında gösterilen tam Callback URL'yi (bu kurulum için canlı) kopyalayın. Kalıp:<BASE_URL>/api/v1/auth/instagram/callback<BASE_URL>backend URL'iniz;/api/v1ayarlıAPI_PREFIX'tir. Bu, Facebook-Page rotasının zaten kullandığı yolun aynısıdır — tek kayıt iki akışa da yeter. Bkz. OAuth Callback URL'leri.
4. Gerekli izinler
instagram_business_basic, instagram_business_content_publish, instagram_business_manage_insights. Bu akışta hiçbir pages_* izni istenmez. Development modunda davetli tester'lara anında verilir; Live'a geçmek her izin için Meta App Review gerektirir.
5. Instagram App ID + App Secret'ı al
Aynı ekran — Instagram → API setup with Instagram business login — Instagram app ID ve Instagram app secret'ı gösterir. Bunları Settings → Basic'ten alma; oradakiler Facebook çiftidir.
Sosyabot admin paneline yapıştırma
/admin/api-integration/instagram. Yapıştır, Enable, Save, Test credentials.
Hata: Instagram login not configured: app id/secret missing (admin panel or INSTAGRAM_APP_ID/SECRET).
Hesap şartı
Bağlanan kişinin Instagram profesyonel hesabı olmalı — Business veya Creator. Facebook Page gerekmez. Kişisel hesap, callback'te instagram_not_professional hatasıyla, daha hiç kanal yazılmadan reddedilir.
Eski Facebook-Page rotası değişmedi: hâlâ bir Facebook Page'e bağlı Business / Creator hesabı ister ve bağlı değilse no_instagram_business_account ile başarısız olur.
İki rota yan yana
| Instagram Login (bu sayfa) | Facebook Page (fallback) | |
|---|---|---|
| İzin ekranı | instagram.com | facebook.com |
| Facebook Page gerekir mi | Hayır | Evet |
| Kimlik bilgileri | instagram_app-id / instagram_app-secret | facebook_app-id / facebook_app-secret |
| Token | Instagram kullanıcı token'ı, 60 gün, kendini yeniler | Facebook Page token'ı, süresi dolmaz |
| API host | graph.instagram.com/v21.0 | graph.facebook.com/v21.0 |
Sosyabot rotayı kendi seçer: bu sayfa yapılandırılmışsa Instagram Login, değilse Facebook Page. Test için birini zorlamak istersen /api/v1/auth/instagram'a ?via=instagram veya ?via=facebook ekle — bu sayfa yapılandırılmamışken ?via=instagram net bir hata verir. Bir hesabın hangi host'u kullandığı o hesabın saklı token'ından okunur, yani eski yoldan bağlanmış kanallar aynen çalışmaya devam eder.
Webhook'lar Facebook app'inde kalır
Meta webhook'ları (META_WEBHOOK_VERIFY_TOKEN) değişmedi ve hâlâ Facebook app secret'ı ile doğrulanır. Bu sayfayı yapılandırmak onları taşımaz.
Doğrulama
/app/channels → Connect → Instagram → instagram.com'a düşmelisin (facebook.com'a değil) → onayla. /app/publishing'ten tek görselli bir test gönderisi yayınla.
Sorun giderme
| Belirti | Sebep | Çözüm |
|---|---|---|
Instagram login not configured: app id/secret missing (admin panel or INSTAGRAM_APP_ID/SECRET) | Admin + ENV boş ve ?via=instagram zorlandı | 1–5. adımlar. Bunlar olmadan Instagram, Facebook-Page rotasını kullanır. |
| Bağlantı hâlâ facebook.com'u açıyor | Bu sayfa boş veya Status Disabled → otomatik fallback | Instagram çiftini doldur ve Status'u Enable yap. |
| instagram.com girişi geçersiz client id diyerek reddediyor | Buraya Facebook App ID'si yapıştırılmış | 5. adım — id'yi Instagram → API setup with Instagram business login'den al. |
instagram_not_professional ile geri dönüyor | Kişisel Instagram hesabı | Hesabı Instagram uygulamasından Business veya Creator'a çevir, sonra tekrar bağla. |
instagram.com'da Invalid redirect_uri | Callback allow-list'te değil | Business login settings altına tam …/api/v1/auth/instagram/callback ekle (3. adım). |
| Instagram kanalı 60. gün civarında ölüyor | Gecelik yenileme sweep'i çalışmıyor | Worker'ı doğrula (./service.sh logs worker); sweep bu token'ları grant_type=ig_refresh_token ile yeniler. Page-token'lı kanallar etkilenmez. |
| App Development modunda ve harici kullanıcılar başarısız | Mod App Roles ile sınırlı | App Roles altında tester ekle veya Live'a geç (App Review gerektirir). |
ENV fallback
INSTAGRAM_APP_ID=<instagram app id'in>
INSTAGRAM_APP_SECRET=<instagram app secret'in>Admin panel her zaman kazanır. .env düzenledikten sonra ./service.sh restart çalıştır.