Ich versuche, das Google YouTube-Daten-API mit PHP auf der Grundlage der Dokumentation von Google zu verwenden: https://developers.google.com/youtube/2.0/developers_guide_protocol_oauth2#OAuth2_Refreshing_a_Token. Mein Problem tritt bei der Authentifizierung mit OAuth auf. Ich benutze die folgende Autorisierungs-URL, die identisch ist mit der, die die Dokumente sagen, außer für meine Redirect-URL und den Anwendungsschlüssel.Google YouTube API-Aktualisierungstoken wird nicht gesendet
$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';
Dann, als die docs sagen, locke ich folgendes:
$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'
);
aber meine Antwort gibt mir nie eine refresh_token wie ihre Dokumentation sagt es sollte. Ich bekomme nur die anderen drei Antwortelemente.
Einige Fragen wie diese: Get refresh token google api haben gesagt, um approval_prompt = force zu verwenden, aber das funktioniert auch nicht und vollständig widerlegt den Zweck von access_type = offline.
Irgendwelche Ideen, warum ich eine gültige Antwort mit 3 der 4 Antwortelemente erhalten würde?
Danke für die Lösung! – WHITECOLOR
Jemand akzeptiert dies als die Antwort! –
Zum Vorteil für alle anderen, die meine eigene Verwirrung erleiden, müssen Sie, sobald Sie ein'Erfrischungs-Token 'erhalten, es nicht mehr _refresh_, da Sie dasselbe immer und immer wieder verwenden können. Die einzige Zeit, in der Sie eine neue benötigen, ist, wenn Sie sie verlieren oder der Benutzer Ihren Zugriff widerruft. – jeteon