Skip to content

Latest commit

 

History

History
179 lines (137 loc) · 11.5 KB

README.md

File metadata and controls

179 lines (137 loc) · 11.5 KB

Spotify Son Dinlenen Müzikler

Spotify'da son dinlediğiniz müzikleri websitenize/profilinize ekleyin. Vercel tarafından desteklenmektedir.

• BÖLÜM 1: Başlangıç

Aşağıdaki "Yetkilendir" düğmesine tıklayarak Spotify hesabınızı bağlayın. Bu, son dinlediğiniz müziklere erişmek için gereklidir.

Uygulamayı yetkilendirerek, Spotify kullanıcı adınız, erişim tokeniniz ve yenileme tokeninizin güvenli bir şekilde Google Firebase veritabanında saklanmasına izin veriyorsunuz. Bu, yalnızca bir kez yetkilendirme yapmanızı ve uygulamanın otomatik olarak erişim tokeninizin yenilemesini sağlar.

Uygulamanın verinize erişimini https://www.spotify.com/account/apps adresinden iptal edebilirsiniz.

Yetkilendirme Butonu

Yetkilendirdikten sonra, aşağıdaki kodu websitenize/profilinize ekleyin ve ?user=xxxxx parametresindeki xxxxx kısmına Spotify kullanıcı adınızı yazın.

+ Markdown'a eklemek için:

![Spotify Son Oynatılan Parçalar](https://spotify.mdusova.com/api?user=xxxxx)

+ HTML'e eklemek için:

<img src="https://spotify.mdusova.com/api?user=xxxxx" alt="Spotify Son Dinlenen Müzikler by madtethys" />

Spotify Son Oynatılan Parçalar

BÖLÜM 2: Listede bulunan müzik sayısı ayarlamak

Listede bulunacak müzik sayısını ayarlamak için API URL'sine &count=x ekleyebilirsiniz. xin alabileceği değerler:

Varsayılan: 5
Minimum: 1
Maksimum: 10

+ Markdown'a eklemek için:

ℹ️ ?user= parametresini kendi kullanıcı adınıza göre düzenlemeyi unutmayın!

![Spotify Son Oynatılan Parçalar](https://spotify.mdusova.com/api?user=31e4wu2ua42rf5qvqaukgjwgz7tu&count=3)

+ HTML'e eklemek için:

ℹ️ ?user= parametresini kendi kullanıcı adınıza göre düzenlemeyi unutmayın!

<img src="https://spotify.mdusova.com/api?user=31e4wu2ua42rf5qvqaukgjwgz7tu&count=3" alt="Spotify Son Dinlenen Müzikler by madtethys" />

Spotify Son Oynatılan Parçalar

• BÖLÜM 2.1: Listenin genişliğini ayarlamak

Listenin genişliğini ayarlamak için API URL'sine &width=xxx ekleyebilirsiniz. xxxin alabileceği değerler:

Varsayılan: 400
Minimum: 300
Maksimum: 1000

+ Markdown'a eklemek için:

ℹ️ ?user= parametresini kendi kullanıcı adınıza göre düzenlemeyi unutmayın!

![Spotify Son Oynatılan Parçalar](https://spotify.mdusova.com/api?user=31e4wu2ua42rf5qvqaukgjwgz7tu&width=600)

+ HTML'e eklemek için:

ℹ️ ?user= parametresini kendi kullanıcı adınıza göre düzenlemeyi unutmayın!

<img src="https://spotify.mdusova.com/api?user=31e4wu2ua42rf5qvqaukgjwgz7tu&width=600" alt="Spotify Son Dinlenen Müzikler by madtethys" />

Spotify Son Oynatılan Parçalar

• BÖLÜM 2.2: Listede tekrar dinlenen müzikleri göstermek

Listede tekrar dinlenen müzikleri göstermek için API URL'sine &unique=true ekleyebilirsiniz.

Varsayılan olarak URL'ye eklenmemiş haldedir. Yani listede tekrar dinlediğiniz müzikler gösterilmeyecektir. API URL'sine &unique=true eklediğinizde listede tekrar dinlediğiniz müzikleri görebilirsiniz.

+ Markdown'a eklemek için:

ℹ️ ?user= parametresini kendi kullanıcı adınıza göre düzenlemeyi unutmayın!

![Spotify Son Oynatılan Parçalar](https://spotify.mdusova.com/api?user=31e4wu2ua42rf5qvqaukgjwgz7tu&unique=true)

+ HTML'e eklemek için:

ℹ️ ?user= parametresini kendi kullanıcı adınıza göre düzenlemeyi unutmayın!

<img src="https://spotify.mdusova.com/api?user=31e4wu2ua42rf5qvqaukgjwgz7tu&unique=true" alt="Spotify Son Dinlenen Müzikler by madtethys" />

Spotify Son Oynatılan Parçalar

• BÖLÜM 2.3: Kullanıcı dostu arayüz ile ayarlar sekmesini kullanarak liste genişliğini, gösterilecek müzik sayısını ve parça benzersizliğini ayarlama

Yeni kullanıcı dostu arayüz ile ayarlar sekmesini kullanarak liste genişliğini, gösterilecek müzik saysını ve tekrar oynatılan müzikleri URL'ye herhangi bir değer vermeden kolayca düzenleyebilirsiniz.

• BÖLÜM 3: Kendi uygulamanı Vercel üzerinden oluştur

Vercel Üzerinden Oluştur

Kendi uygulamanızı oluşturmak için yukarıdaki bağlantıyı kullanın. Sonra, aşağıdaki ortam değişkenlerini(environment/env) ayarlayın:

Değer Açıklama
NEXT_PUBLIC_REDIRECT_URI Spotify callback URI'si http://alanadiniz.com/api/callback
NEXT_PUBLIC_BASE_URL Projenin URL'si
NEXT_PUBLIC_CLIENT_ID Spotify uygulaması istemci kimliği
CLIENT_SECRET Spotify uygulaması istemci gizli anahtarı
FIREBASE_PROJECT_ID Firebase proje kimliği(ID)
FIREBASE_PRIVATE_KEY_B64 Firebase sistem kullanıcısı özel anahtarının base64 encode edilmiş hali
FIREBASE_CLIENT_EMAIL Firebase sistem kullanıcı e-postası
FIREBASE_DATABASE_URL Firebase veritabanı URL'si

Son olarak, utils/Constants.ts dosyasını düzenleyin ve ClientId, BaseUrl, RedirectUri değerlerini ayarlayın.

• BÖLÜM 4: Yerel olarak çalıştırma

  1. Git ile projeyi klonlayın:
    $ git clone https://github.com/madtethys/spotify-son-dinlenenler.git
  2. Node modüllerini yükleyin:
    $ npm install
  3. Gerekli ortam değişkenlerini içeren .env dosyasını oluşturun:
    NEXT_PUBLIC_REDIRECT_URI=<Spotify callback URI'si http://localhost:3000/api/callback>
    NEXT_PUBLIC_BASE_URL=<Projenin URL'si yerelde çalıştırmak için (http://localhost:3000)>
    NEXT_PUBLIC_CLIENT_ID=<Spotify uygulaması istemci kimliği>
    CLIENT_SECRET=<Spotify uygulaması istemci gizli anahtarı>
    FIREBASE_PROJECT_ID=<Firebase proje kimliği(ID)>
    FIREBASE_PRIVATE_KEY_B64=<Firebase sistem kullanıcısı özel anahtarının base64 encode edilmiş hali>
    FIREBASE_CLIENT_EMAIL=<Firebase sistem kullanıcı e-postası>
    FIREBASE_DATABASE_URL=<Firebase veritabanı URL'si>
  4. utils/Constants.ts dosyasını düzenleyin ve ClientId, BaseUrl, RedirectUri değerlerini ayarlayın.
  5. Projeyi başlatın:
    $ npm run dev

📍 Uygulamanız http://localhost:3000 başlamış olacaktır.

• BÖLÜM 5: Sıkça Sorulan Sorular

❓ SORU: Widget GitHub'da yüklenmiyor.

✔️ Bazen GitHub'da widget yüklenmiyor ve camo.githubusercontent.com'dan 502 yanıt alıyor olabilirsiniz. Bu, GitHub'nın resimleri proxy etmesi ve uzun süreli isteklerin zaman aşımına uğraması nedeniyle oluyor. Uzun istek süreleri genellikle Firebase veritabanı sunucu uzaklığı nedeniyle oluyor, bu da birkaç saniye sürebiliyor. Eğer sayfayı yenilediğinizde halen daha görüntü yüklenmiyorsa Firebase projenizi başka bir Google hesabıyla tekrardan oluşturabilirsiniz.

ℹ️ Bu, kesin bir çözüm olmayabilir ve sorunu %100 ortadan kaldırmayabilir. Daha iyi çözümleriniz varsa veya genel optimizasyonlarınız varsa, bana iletebilirsiniz!

❓ SORU: Spotify uygulaması istemci kimliği nedir?

✔️ Spotify uygulaması istemci kimliği, Spotify'da oluşturduğunuz uygulamanın kimliğidir. Bu kimlik, Spotify'da uygulamanızı tanımlamak için kullanılır ve NEXT_PUBLIC_CLIENT_ID ortam değişkeninde ayarlanmalıdır.

❓ SORU: Spotify uygulaması istemci gizli anahtarı nedir?

✔️ Spotify uygulaması istemci gizli anahtarı, Spotify'da oluşturduğunuz uygulamanın gizli anahtarıdır. Bu anahtar, Spotify'da uygulamanızı tanımlamak için kullanılır ve CLIENT_SECRET ortam değişkeninde ayarlanmalıdır.

❓ SORU: Firebase proje kimliği(ID) nedir?

✔️ Firebase proje kimliği(ID), Firebase'da oluşturduğunuz projenin kimliğidir. Bu kimlik, Firebase'da projenizi tanımlamak için kullanılır ve FIREBASE_PROJECT_ID ortam değişkeninde ayarlanmalıdır.

❓ SORU: Firebase sistem kullanıcısı özel anahtarının base64 encode edilmiş hali nedir?

✔️ Firebase sistem kullanıcısı özel anahtarının base64 encode edilmiş hali, Firebase'da oluşturduğunuz projenin özel anahtarının base64 şeklinde encode edilmiş halidir. Bu anahtar, Firebase'da projenizi tanımlamak için kullanılır ve FIREBASE_PRIVATE_KEY_B64 ortam değişkeninde ayarlanmalıdır.

❓ SORU: Firebase sistem kullanıcı e-postası nedir?

✔️ Firebase sistem kullanıcı e-postası, Firebase'da oluşturduğunuz projenin sistem kullanıcısının e-postasıdır. Bu e-posta, Firebase'da projenizi tanımlamak için kullanılır ve FIREBASE_CLIENT_EMAIL ortam değişkeninde ayarlanmalıdır.

❓ SORU: Firebase veritabanı URL'si nedir?

✔️ Firebase veritabanı URL'si, Firebase'da oluşturduğunuz projenin veritabanı URL'sidir. Bu URL, Firebase'da projenizi tanımlamak için kullanılır ve FIREBASE_DATABASE_URL ortam değişkeninde ayarlanmalıdır.

• BÖLÜM 6: Eklenen Özellikler

🌙 Karanlık Tema (v0.9.4-beta.2):

Kullanıcı deneyimini daha da iyileştirmek amacıyla karanlık tema desteği ekledik! Gece kullanımı için daha uygun bir arayüz sunarak göz yorgunluğunu azaltmayı hedefliyoruz. Koyu mod, kullanıcıların daha rahat bir deneyim yaşamasına yardımcı olacak.

⚙️ Ayarlar Sekmesi (v0.9.5-beta.2):

API'nin URL'siyle uğraşmanıza gerek kalmadan, artık ayarlar sekmesinden kolayca ayarlamalar yapabileceksiniz. Bu yeni özellik sayesinde, URL’yi daha basit ve hızlı bir şekilde temin edebilir, tüm yapılandırmaları tek bir yerden yönetebilirsiniz. Kullanıcı dostu arayüzümüzle, istediğiniz ayarları kolayca yapılandırarak API deneyiminizi kişiselleştirin. Tüm ayarlarınızı tek bir tıkla güncelleyerek zamandan tasarruf edin!

🔗 Instagram Hikayesine Ekleme (v0.9.9-beta.4):

API'den aldığımız görüntüyü Instagram hikayesinde paylaşma özelliği eklendi! Artık son dinlediğiniz müzikleri kolayca hikayenizde paylaşabilirsiniz. Üstelik, paylaşım yaparken görselin arka planını değiştirebilme seçeneğiniz de var. Böylece müziklerinizi daha özgün bir şekilde sunabilir, kendi tarzınıza uygun bir estetik yaratabilirsiniz.

📶 Anlık Veri Çekme (v1.0.0-alpha):

Projemiz artık tamamen Türk sunucularına taşınmış durumda! Bu sayede %100 anlık veri çekme kapasitesine ulaştık. Önceki gecikme sorunları, projenin Vercel'in Europe-West1 (İrlanda) ve Firebase Veritabanı'nın Europe-West1 (Belçika) sunucularında bulunmasından kaynaklanıyordu.

Şimdi anlık veri çekme performansımız önemli ölçüde iyileşti ve kullanıcı deneyiminizi daha da geliştirmek için çalışmalara devam ediyoruz.

• BÖLÜM 7: Gizlilik Politikası

Gizlilik politikasını buradan okuyabilirsiniz.

• BÖLÜM 8: Lisans

Bu proje Apache License 2.0 altında lisanslanmıştır. Daha fazla bilgi için lisans dosyasına bakınız.