Sto tentando di utilizzare l'API di dati di YouTube di Google con PHP in base alla documentazione di Google qui: https://developers.google.com/youtube/2.0/developers_guide_protocol_oauth2#OAuth2_Refreshing_a_Token. Il mio problema arriva quando autentichi con OAuth. Sto usando il seguente URL di autorizzazione che è identico a quello che i documenti dicono di usare tranne che per il mio reindirizzamento uri e la chiave dell'applicazione, ovviamente.Aggiornamento dell'API di YouTube di Google Token non inviato
$this->authorizationUrl = 'https://accounts.google.com/o/oauth2/auth?';
$this->authorizationUrl .= 'client_id=' . $this->applicationKey . '&';
$this->authorizationUrl .= 'redirect_uri=' . $this->redirect_uri . '/account.php?action=youtube_oauth&';
$this->authorizationUrl .= 'scope=https://gdata.youtube.com&';
$this->authorizationUrl .= 'response_type=code&';
$this->authorizationUrl .= 'access_type=offline';
Poi, come dicono i documenti, io arricciare le seguenti:
$curl_options = Array(
CURLOPT_POSTFIELDS => Array(
'code' => $code,
'client_id' => $this->applicationKey,
'client_secret' => $this->applicationSecret,
'redirect_uri' => $this->redirect_uri . '/account.php?action=youtube_oauth',
'grant_type' => 'authorization_code'
),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => 'https://accounts.google.com/o/oauth2/token'
);
Tuttavia, la mia risposta non mi dà un refresh_token come la loro documentazione dice che dovrebbe. Ho appena ricevuto gli altri tre elementi di risposta.
Alcune domande come questa: Get refresh token google api hanno detto di utilizzare approval_prompt = force, ma anche questo non funziona e vanifica completamente lo scopo di avere access_type = offline.
Qualche idea sul motivo per cui riceverei una risposta valida con 3 dei 4 elementi di risposta?
Grazie per la soluzione! – WHITECOLOR
Qualcuno accetta come risposta! –
Per il beneficio di qualcun altro che soffre della mia confusione, una volta ottenuto un 'token di aggiornamento 'non è necessario _refresh_ anche perché è possibile utilizzare lo stesso più e più volte. L'unica volta che dovresti aver bisogno di una nuova è se la perdi o l'utente revoca il tuo accesso. – jeteon