oauth2 kullanarak youtube apide oturum açıyorum. sistem şöyle işliyor : index.php php session yoksa callback dosyasına gidip, authurl oluşturup access_token ve refresh_token alıyorum.json dosyalarına ayrı ayrı kaydediyorum. php sessionlar oluşturuluyor. daha sonra otomatik index.php ye geri dönüyorum.
sorunda burada başlıyor. index.php de eğer access_token süresi dolmuşsa refresh_token kullanarak yenileme yapıyorum. ama sayfayı her yenilediğimde access_token tekrar tekrar yenileniyor.
sorun nerede olabilir, access_token bir kere yenilendiğinde süre dolana kadar beklemesi gerekmez mi? kodları ve ekran çıktısını aşağıda görebilirsiniz.
index.php
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { if ($client->isAccessTokenExpired()) { $client->fetchAccessTokenWithRefreshToken($_SESSION['refresh_token']); $_SESSION['access_token'] = $client->getAccessToken(); $client->setAccessToken($_SESSION['access_token']); file_put_contents("token.json", json_encode($_SESSION['access_token'])); echo "yenilendi<br>"; } $kayitli_token = file_get_contents("token.json"); $kayitli_token = json_decode($kayitli_token); $guncel = $client->getAccessToken(); echo "Kayıtlı Token Zaman : ".$kayitli_token->created."<br>"; echo "Güncel Zaman : ".$guncel['created']."<br>"; $kalan = $guncel['created'] - $kayitli_token->created; echo "Geçen Süre : ".$kalan."<br>"; echo "Güncel Expires : ".$guncel['expires_in']."<br>"; } else { $redirect_uri = 'https://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php'; header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); }Çıktı :
