0

My Web mit dem PHP Google_Client die youtube playlistItem in meiner Playlist (2-Bein-oauth) einzufügen, und erhalten den Fehler Client is unauthorized to retrieve access tokens using this method. Wo kann ich den Server einrichten Verwenden Sie [email protected], um die gleiche Berechtigung zum Zugriff auf Google API wie Insertion playlistItem, oder gibt es einen anderen Weg, ohne [email protected], um die gleiche Erlaubnis zu erhalten?PHP Google_Client einfügen youtube playlistItem (2-Bein-oauth)

PHP-Code:

putenv('GOOGLE_APPLICATION_CREDENTIALS=client_secret.json'); 
$client = new Google_Client(); 
$client->useApplicationDefaultCredentials(); 
$client->addScope('https://www.googleapis.com/auth/youtube'); 
$client->setSubject('[email protected]'); 

Antwort

1

Wenn Sie domänenweiten Zugriff auf das Dienstkonto übertragen und Sie ein Benutzerkonto imitieren wollen, geben Sie die E-Mail-Adresse des das Benutzerkonto verwenden

Die YouTube-API unterstützt keine delegierten domänenweiten Zugriffs- oder Dienstkonten. Sie müssen sich mit Oauth2 authentifizieren.

siehe PHP Code Samples

0

Sie sind ein gemeinsames Problem zu schlagen. Viele Entwickler sind der Meinung, dass ein Dienstkonto die richtige Methode für Server-Apps ist, um mit den Google-API-Diensten für ein bestimmtes Google-Konto zu kommunizieren. Es ist nicht! Ein Dienstkonto ist, wie der Name schon sagt, ein brandneues Konto (eigentlich eine Art Halbkonto, da Sie sich nicht wirklich anmelden können), das Ihrer App gewidmet ist.

Was Sie tun müssen, ist eine einmalige Prozedur, um ein Refresh Token zu generieren, das Sie sicher speichern werden. Wenn Sie anschließend auf eine Google API wie YouTube zugreifen müssen, verwenden Sie das Aktualisieren-Token, um ein Access Token zu generieren, das Sie in jede API-Anfrage aufnehmen. Die Schritte sind How do I authorise an app (web or installed) without user intervention? (canonical ?) und https://www.youtube.com/watch?v=hfWe1gPCnzc