Bonjour,
Je viens poster ici un message de détresse, cela fait deux jours que je m’arrache les cheveux à essayer de trouver l'erreur.
Je m'explique, j'ai suivi le tuto pour permettre à l'utilisateur de pouvoir uploader une vidéo sur mon site pour que cette dernière se mette sur ma chaîne youtube.
Le problème est que la vidéo se met bien sur ma chaîne mais apres le téléchargement de la vidéo j'ai un message d'erreur de Gdata:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 Fatal error: Uncaught exception 'Zend_Gdata_App_HttpException' with message ' in C:\wamp\www\Projetyoutube\Zend\Gdata\App.php on line 714
Ainsi que:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Zend_Gdata_App_HttpException: Expected response code 200, got 400 Invalid value for parameter: username in C:\wamp\www\Projetyoutube\Zend\Gdata\App.php on line 714
Je ne comprend pas...

Code permettant l'upload de la vidéo:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
 
<?php
 
require_once 'Zend/Gdata/YouTube.php';
require_once 'Zend/Gdata/ClientLogin.php';
 
// configuration et identifiants
$authenticationURL = 'https://www.google.com/youtube/accounts/ClientLogin';
$developerKey = 'ma clé'; 
$applicationId = 'applicationId'; 
$clientId = 'idclient';
$username = "jonathanaffre@gmail.com";
$password = "motdepassei";
 
 
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
    $username,$password,'youtube',null,'MonSiteWeb',null,null,$authenticationURL
);
 
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
 
 
 
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
 
 
$myVideoEntry->setVideoTitle('Titre');
$myVideoEntry->setVideoDescription('Description de ma video');
$myVideoEntry->setVideoCategory('Sports'); 
 
 
 
 
// Récupération du jeton
$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
$tokenValue = $tokenArray['token'];
$postUrl = $tokenArray['url'];
 
 
$nextUrl = 'http://localhost/Projetyoutube/upload_video_ok.php';
//echo $tokenValue;
echo $postUrl;
// Affichage du formulaire
$form = '<form action="'. htmlspecialchars($postUrl, ENT_QUOTES) .'?nexturl='
. urlencode($nextUrl) . '&username='.$username.'" method="post" enctype="multipart/form-data">
Fichier vidéo : <input name="file" type="file"/>
<input name="token" type="hidden" value="'. $tokenValue .'"/>
<input value="Envoyer la vidéo" type="submit" />
</form>';
 
echo $form;
?>
Et ma page qui gère les erreurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
<?php
 
if(isset($_GET['status']) AND $_GET['status']==200) {
    $videoId = $_GET['id'];
    $username = "username"; 
    $location = 'http://gdata.youtube.com/feeds/api/users/'.$username.'/uploads/' . $videoId;  
    $message='';
 
    require_once 'Zend/Gdata/YouTube.php';
    $yt = new Zend_Gdata_YouTube();
 
    $myVideoEntry = $yt->getVideoEntry(null, $location); 
    $videoControl = $myVideoEntry->getControl();
    $videoState = $myVideoEntry->getVideoState();
 
    if($videoControl==null) {
        $message = "Votre vidéo a été enregistrée avec succès";
    }
    elseif($videoState) 
        {
        $videoStateName = $videoState->getName();
        switch($videoStateName) {
            case 'rejected' : 
                if($videoState->getText()=='Duplicate video') {
                    $message = "Cette vidéo a déjà été envoyée. Merci de choisir 
                    un autre fichier.";
                } else {
                    $message = "Votre vidéo n'a pas été acceptée car elle ne 
                    respecte pas les conditions d'utilisation de YouTube. 
                    Peut-être est-elle trop longue ou ne respecte pas certains 
                    droits d'auteur.";
                }
            break;
            case 'failed' :
                if($videoState->getText()=='Unable to convert video file') {
                    $message = "Echec lors de l'envoi : Impossible de convertir 
                    le fichier vidéo. Vérifier qu'il s'agit bien d'un fichier 
                    vidéo."; 
                }
                else {
                    $message = "Votre vidéo n'a pas été acceptée car elle ne 
                    respecte pas les conditions d'utilisation de YouTube. 
                    Peut-être est-elle trop longue ou ne respecte pas certains 
                    droits d'auteur.";
                }
            break;
            case 'processing' : $message = "Votre vidéo a bien été envoyée. Elle 
                    est désormais en cours de traitement et sera 
                    publiée d'ici quelques heures.";
            break;
            default: $message = "Votre vidéo a bien été envoyée. Elle est 
                    désormais en cours de traitement et sera publiée d'ici 
                    quelques heures.";
        }
    }
    else {
        $message = "Votre vidéo a bien été envoyée. Elle est désormais en cours 
        de traitement et sera publiée d'ici quelques heures.";
    }
}
else {
            $message = "Une erreur s'est produite lors de l'upload du fichier. 
            Merci de contacter le webmaster si ce problème persiste";
 
}
 
echo $message;
 
 
 
 
?>
Voila... je sais que cette API est très bien documentée mais je n'ai pas trouvé la solution à mon problème..
Merci à ceux qui prendrons la peine de lire mon post!