Ich versuche, das Google YouTube-Daten-API mit PHP basierend auf der Google-Dokumentation zu verwenden: Ссылка . Mein Problem tritt bei der Authentifizierung mit OAuth auf. Ich verwende die folgende Autorisierungs-URL, die identisch ist mit der, die die Dokumente sagen, außer für meinen Weiterleitungs-URI und den Anwendungsschlüssel, offensichtlich.
%Vor%Dann, wie die Dokumente sagen, ich cURL Folgendes:
%Vor%Allerdings gibt mir meine Antwort nie ein refresh_token, wie es in ihrer Dokumentation steht. Ich bekomme nur die anderen drei Antwortelemente.
Einige Fragen wie diese: Get Refresh Token Google API haben gesagt, zu verwenden approval_prompt = force, aber das funktioniert auch nicht und macht den Zugriff auf access_type = offline komplett unmöglich.
Irgendwelche Ideen, warum ich eine gültige Antwort mit 3 der 4 Antwortelemente bekommen würde?
Aus dem Offlinezugriff Teil der OAuth2.0-Dokumentation:
Wenn Ihre Anwendung ein Aktualisierungstoken empfängt, ist dies der Fall wichtig, um dieses Refresh-Token für die zukünftige Verwendung zu speichern. Wenn dein Anwendung verliert das Refresh-Token, es muss erneut aufgefordert werden, die Benutzer für die Zustimmung, bevor er ein anderes Aktualisierungstoken erhält. Wenn Sie brauchen Um den Benutzer erneut zur Zustimmung aufzufordern, geben Sie
approval_prompt
ein. Parameter in der Autorisierungscodeanforderung und setzen Sie den Wert aufforce
.
Wenn Sie also bereits Zugriff gewährt haben, geben nachfolgende Anforderungen für grant_type
von authorization_code
nicht die refresh_token
zurück, auch wenn access_type
in der Abfragezeichenfolge der Zustimmungsseite auf offline
festgelegt wurde.
Wie bereits im obigen Zitat angegeben, müssen Sie, um eine neue refresh_token
zu erhalten, nachdem Sie bereits eine erhalten haben, Ihren Nutzer durch die Eingabeaufforderung zurücksenden, was Sie tun können, indem Sie% setzen co_de% bis approval_prompt
.
Prost,
PS Diese Änderung wurde in einem Blogpost angekündigt auch.
Tags und Links php google-api youtube youtube-api oauth-2.0