5.0 KiB
5.0 KiB
Google Maps API Kurulum Rehberi
Sorun: "For development purposes only" Uyarısı
Haritada "For development purposes only" yazısı görünüyorsa, bu Google Maps API anahtarınızın düzgün yapılandırılmadığı anlamına gelir.
Çözüm Adımları
1. Google Cloud Console'a Giriş Yapın
- Google Cloud Console adresine gidin
- Mevcut projenizi seçin veya yeni bir proje oluşturun
2. Gerekli API'leri Etkinleştirin
Aşağıdaki API'lerin mutlaka etkinleştirilmesi gerekir:
-
Maps JavaScript API
- Navigation menüden: APIs & Services > Library
- "Maps JavaScript API" arayın
- "ENABLE" butonuna tıklayın
-
Places API
- "Places API" arayın
- "ENABLE" butonuna tıklayın
-
Directions API
- "Directions API" arayın
- "ENABLE" butonuna tıklayın
3. Faturalama (Billing) Ayarlarını Yapın
ÖNEMLİ: Google Maps API'nin çalışması için faturalama hesabı bağlanması zorunludur.
- Navigation menüden: Billing > Link a billing account
- Kredi kartı bilgilerinizi ekleyin
- Google Maps API için aylık $200 ücretsiz kullanım kredisi verilir
- Bu kredi çoğu küçük-orta ölçekli uygulama için yeterlidir
Maliyet Kontrolü:
- Google Cloud Console > Billing > Budgets & alerts
- Aylık bütçe limiti belirleyin (örn: $50)
- Limit aşıldığında e-posta uyarısı alın
4. API Anahtarı Oluşturun veya Güncelleyin
- Navigation menüden: APIs & Services > Credentials
- "+ CREATE CREDENTIALS" > "API key" seçin
- Yeni oluşturulan anahtarı kopyalayın
5. API Anahtarını Kısıtlayın (Güvenlik)
Önemli: Kısıtlanmamış API anahtarları güvenlik riski oluşturur!
-
Oluşturduğunuz API anahtarının yanındaki "Edit" ikonuna tıklayın
-
Application restrictions bölümünde:
- "HTTP referrers (web sites)" seçin
- Website restrictions kısmına domain'lerinizi ekleyin:
https://yourdomain.com/* https://*.yourdomain.com/* http://localhost:5173/* http://localhost:4173/*
-
API restrictions bölümünde:
- "Restrict key" seçin
- Şu API'leri seçin:
- Maps JavaScript API
- Places API
- Directions API
-
"SAVE" butonuna tıklayın
6. API Anahtarını Uygulamaya Ekleyin
- Proje kök dizinindeki
.envdosyasını açın VITE_GOOGLE_MAPS_API_KEYdeğerini yeni anahtarınızla güncelleyin:VITE_GOOGLE_MAPS_API_KEY=AIzaSy...YourNewKey...- Uygulamayı yeniden başlatın
7. Değişikliklerin Yayılmasını Bekleyin
API anahtarı kısıtlamalarını güncelledikten sonra değişikliklerin yayılması 5-10 dakika sürebilir.
Doğrulama
Tüm adımları tamamladıktan sonra:
- Tarayıcınızı yenileyin (hard refresh: Ctrl+Shift+R veya Cmd+Shift+R)
- Haritanın düzgün yüklendiğini kontrol edin
- "For development purposes only" yazısının kaybolduğunu doğrulayın
Sorun Giderme
Hala "For development purposes only" görünüyor
- API anahtarı kısıtlamalarının yayılması için 10 dakika bekleyin
- Domain kısıtlamalarını kontrol edin (localhost ve production domain'leri eklediğinizden emin olun)
- Tarayıcı cache'ini temizleyin
"This API project is not authorized to use this API"
- İlgili API'nin (Maps JavaScript API, Places API, Directions API) etkinleştirildiğinden emin olun
- API restrictions kısmında doğru API'lerin seçildiğini kontrol edin
Harita hiç yüklenmiyor
- Tarayıcı konsolunu açın (F12) ve hata mesajlarını kontrol edin
- API anahtarının doğru kopyalandığından emin olun
.envdosyasında boşluk veya özel karakter olmadığını kontrol edin
Maliyet Optimizasyonu
Ücretsiz Kullanım Limitleri (Aylık)
- Maps JavaScript API: 28,000 yükleme
- Places API:
- Text Search: 1,000 istek
- Place Details: 1,000 istek
- Place Photos: 1,000 istek
- Directions API: 1,000 istek
Maliyet Azaltma İpuçları
- Caching kullanın: Aynı yerlerin tekrar sorgulanmasını önleyin
- Place Photos caching: Supabase Storage'da fotoğrafları önbelleğe alın (zaten uygulanmış)
- Autocomplete yerine Text Search: Daha az maliyetli
- Gereksiz API çağrılarını önleyin: Debounce ve throttle kullanın
Güvenlik En İyi Uygulamaları
- ✅ API anahtarını mutlaka kısıtlayın (domain ve API restrictions)
- ✅ Faturalama uyarıları ayarlayın (beklenmedik maliyetleri önlemek için)
- ✅ API anahtarını public repository'lere commit etmeyin
- ✅ Production ve development için farklı anahtarlar kullanın
- ✅ Düzenli olarak API kullanım raporlarını kontrol edin