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


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
Auteur

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.

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