0

Mon Web en utilisant le PHP Google_Client pour insérer le youtube playlistItem dans ma playlist (2-jambe OAuth), et obtenir l'erreur Client is unauthorized to retrieve access tokens using this method. Où puis-je configurer le serveur en utilisant [email protected] pour avoir la même autorisation d'accéder à google api tels que insérer playlistItem, ou y a-t-il une autre façon sans utiliser [email protected] pour obtenir la même autorisation?PHP Google_Client insérer youtube playlistItem (2-jambe OAuth)

Code PHP:

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]'); 

Répondre

1

Si vous avez délégué accès au domaine à l'échelle pour le compte de service et vous voulez usurper l'identité d'un compte d'utilisateur, indiquez l'adresse e-mail de l'utilisation du compte utilisateur

$client->setSubject($user_to_impersonate); 

L'API YouTube ne prend pas en charge les comptes d'accès ou de service délégués à l'échelle du domaine. Vous devrez vous authentifier avec Oauth2.

voir PHP Code Samples

0

Vous frappez un problème commun. De nombreux développeurs pensent qu'un compte de service est le moyen approprié pour les applications serveur de communiquer avec les services API de Google pour un compte Google donné. Ce n'est pas! Un compte de service, comme son nom l'indique, est un nouveau compte (en fait une sorte de demi-compte puisque vous ne pouvez pas vous connecter) qui est dédié à votre application.

Ce que vous devez faire est une procédure unique pour générer un jeton d'actualisation, que vous stockez en toute sécurité. Par la suite, chaque fois que vous aurez besoin d'accéder à une API Google telle que YouTube, vous utiliserez ce jeton d'actualisation pour générer un jeton d'accès, que vous inclurez dans chaque demande d'API. Les étapes sont énumérées How do I authorise an app (web or installed) without user intervention? (canonical ?) et https://www.youtube.com/watch?v=hfWe1gPCnzc