API Youtube et OAuth

Par luxios, il y a 9 ans


Bonjour tout le monde !,

Voila je rencontre un petit problème avec mon magnifique code bien propret.

Je suis la formation Youtube API 3

Aucun moyen d'exécuter $request, la vidéo ne se créée pas sur mon compte et j'ai un message d'erreur génialissime de clarté.

require ('youtube.php'); $youtube_settings = new YoutubeManager(); $client_id = $youtube_settings->clientID; $client_secret = $youtube_settings->client_secret; $client = new Google_Client(); $client->setClientId($client_id); $client->setClientSecret($client_secret); $client->setRedirectUri('http://foo.fr/youtube/upload'); $client->setScopes('https://www.googleapis.com/auth/youtube'); $youtube = new Google_Service_YouTube($client); session_start(); if(isset($_GET['code'])){ $client->authenticate($_GET['code']); $_SESSION['token'] = $client->getAccessToken(); header('Location : http://foo.fr/youtube/upload'); die(); } if(isset($_SESSION['token'])){ $client->setAccessToken($_SESSION['token']); } if($client->getAccessToken()){ $snippet = new Google_Service_YouTube_VideoSnippet(); $snippet->setTitle('Test après midi'); $snippet->setDescription('Petite description'); $snippet->setTags(['tag1','tag2']); $snippet->setCategoryId(17); $status = new Google_Service_YouTube_VideoStatus(); $status->setPrivacyStatus('private'); $video = new Google_Service_YouTube_Video(); $video->setSnippet($snippet); $video->setStatus($status); $request = $youtube->videos->insert('status,snippet', $video); } else { $html = '<div class="panel panel-danger"> <div class="panel-heading"> <h2>Accès interdit</h2> </div> <div class="panel-body"> <p> Vous devez <a href="' . $client->createAuthUrl() . '"> autoriser</a> l\'application à accéder à votre compte youtube.</p> </div> </div>'; }

Ce que je veux

Je veux pouvoir insérer une vidéo, même vide, je m'en fiche. Mais il faut que ce fichu message disparaisse :(

Ce que j'obtiens

Fatal error: Uncaught exception 'Google_Service_Exception' with message '{ "error": { "errors": [ { "domain": "global", "reason": "authError", "message": "Invalid Credentials", "locationType": "header", "location": "Authorization" } ], "code": 401, "message": "Invalid Credentials" } } ' in /home/foo/public_html/vendor/google/apiclient/src/Google/Http/REST.php:118 Stack trace: #0 /home/foo/public_html/vendor/google/apiclient/src/Google/Http/REST.php(94): Google_Http_REST::decodeHttpResponse(Object(GuzzleHttp\Psr7\Response), Object(GuzzleHttp\Psr7\Request), 'GoogleService...') #1 [internal function]: Google_Http_REST::doExecute(Object(GuzzleHttp\Client), Object(GuzzleHttp\Psr7\Request), 'GoogleService...') #2 /home/foo/public_html/vendor/google/apiclient/src/Google/Task/Runner.php(181): call_user_func_array(Array, Array) #3 /home/foo/public_html/vendor/google/apiclient/src/Google/Http/REST.php(58): Google_Task_Runner->run() #4 /home/foo/public_html/vendor/google/apiclient/src/Goo in /home/foxo/public_html/vendor/google/apiclient/src/Google/Http/REST.php on line 118

Merci les copains. Vous êtes d'une bravitude.

3 réponses

Azorgh, il y a 9 ans

Salut,

Comme tu le dis si bien, le message est clair !
"message": "Invalid Credentials"

Tu as donc un soucis au niveau des identifiants que tu fournis à YouTube pour utiliser l'API (clientID et clientSecret).

luxios, il y a 9 ans

Salut,

Merci de ta réponse, j'ai vérifié 40 fois les identifiants, les ai changés à plusieurs reprise, mais rien n'y fait. Etrange.

Azorgh, il y a 9 ans

Es-tu sur que les informations sont correctement envoyés ?