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:
Ainsi que:
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
Je ne comprend pas...
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
Code permettant l'upload de la vidéo:
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 <?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; ?>
Voila... je sais que cette API est très bien documentée mais je n'ai pas trouvé la solution à mon problème..
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; ?>
Merci à ceux qui prendrons la peine de lire mon post!![]()
Partager