Spotify Php Api
Merhabalar. Spotify Web API kullanarak bir proje geliştirmek istiyorum. Türkçe birkaç kaynağı inceledim fakat hatalar almaktayım. Daha önce bu api ile ilgilenmiş ve yardımcı olabilecek var mıdır acaba ?
Buradaki dökümanı inceledim. İlk çalıştırmada sorunsuz çalışıyor fakat ikinci kez çalıştırmak istediğim zaman
Fatal error: Uncaught SpotifyWebAPISpotifyWebAPIAuthException: Invalid authorization code in spotifyvendorjwilssonspotify-web-api-phpsrc
Request.php:66 Stack trace: #0 spotifyvendorjwilssonspotify-web-api-phpsrc
Request.php(276): SpotifyWebAPIRequest->parseBody(Object(stdClass), 400) #1 spotifyvendorjwilssonspotify-web-api-phpsrc
Request.php(116): SpotifyWebAPIRequest->send('POST', 'https://account...', 'client_id=0bc6a...', Array) #2 spotifyvendorjwilssonspotify-web-api-phpsrc
Session.php(248): SpotifyWebAPIRequest->account('POST', '/api/token', Array, Array) #3 spotifyindex.php(9): SpotifyWebAPISession->requestAccessToken('AQCLIyMwrhmCmzV...') #4 {main} thrown in spotifyvendorjwilssonspotify-web-api-phpsrc
Request.php on line 66
bu şekilde hata alıyorum. Bunu nasıl çözebilirim ?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Hocam mobildeyim kod yardımında bulunamayacağım ama fikir olarak anlatabilirim Exception'da da belirttiği gibi 2. kez çalışmaz çünkü bir kod geliyor bu kod 1 kereliğine mahsus oluşturuluyor.
Invalid authorization code in yani şöyle de denebilir 1 kez kullandın bir daha kullanamazsın diyor. bunun çözümü ise bu kod ile oluşturduğun access token ve refresh token oluşuyor bunları bir mySQL de ya da herhangi bir database de tutman gerekiyor sürekli sürekli oluşturmamak için refresh token ile belirli zaman aralıklarında yenilemek gerekiyor.
Örnek veriyorum access tokenin 1 saatlik ömrü varsa 1 saatte bir refresh tokeni kullanarak yeni bir access token oluşturmalısın.
Özet geçecek olursak ilk oluşturduğun tokeni sürekli kullanabilirsin fakat o tokenin bir ömrü var genellikle 1 saat oluyor diye biliyorum.
1 kere oluşturup sessiona atabilirsin ya da dbden çekip kullanabilirsin. Anlamadıysan eğer bilgisayara geçtiğim de basit bir kod atabilirim