Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
J'essaie d'incorporer dans mes pages un Album web picasa.
La partie connexion fonctionne
Je recupere les infos des albums, puis les vignettes contenues dans l'album selectionné, mais impossible d'aller plus loin et de recuperer l'image "grand format", j'obtiens une erreur google.
Le lien est pourtant valide, si je le recupère et le place directement dans mon browser ça passe.
Test erreur Google car le lien est bien valide.
Etrange. Si quelqu'un a une idée.
Merci par avance
allow_url_fopen est "on"
J'utilise ZF 1.78
<?php //==========================================autoload biblioteque require_once "Zend/Loader.php"; Zend_Loader::registerAutoload(); //===============connexion à Picasa web================================= $id_album = $_GET["id_album"]; $user = "xxxxxxxxxxxxxx"; $pass = "xxxxxxxxxxxxx"; $serviceName = Zend_Gdata_Photos::AUTH_SERVICE_NAME; $client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $serviceName); if(!$id_album){ //=========================partie album=================================== /* on recupere les info de l'album sur lequel on est connecté */ $gp = new Zend_Gdata_Photos($client, "Google-DevelopersGuide-1.0"); echo "<ul>"; try { $userFeed = $gp->getUserFeed("default"); foreach ($userFeed as $userEntry) { //echo $userEntry->title->text . "<br />\n"; //echo $userEntry->gphotoName->text . "<br />\n"; //echo $userEntry->id->text . "<br />\n"; //echo $userEntry->mediaGroup->thumbnail[0]->url . "<br />\n"; //echo $userEntry->getGphotoId() . "<br />\n"; //echo $userEntry->getGphotoUser () . "<br />\n"; //echo $userEntry->getGphotoNickname () . "Nickname<br />\n"; //echo $userEntry->getGphotoNumPhotos () . "getGphotoNumPhotos<br />\n"; //echo "<br />\n"; //------------------------------------------------------------------- $id_album_picasa = $userEntry->id->text; $id_album_picasa = strrchr($id_album_picasa,"/"); $id_album_picasa = str_replace("/","",$id_album_picasa); $url_album_photo = $_SERVER['PHP_SELF']."?page=photo&id_album=".$id_album_picasa; //echo $userEntry->getGphotoId[_text]; echo "<span>"; echo "<a href=\"".$url_album_photo."\"><img src=\"".$userEntry->mediaGroup->thumbnail[0]->url."\" width=\"160\" height=\"160\" style=\"margin:1px 0 0 4px;\"></a>"; //echo "<img src=\"".$userEntry->mediaGroup->thumbnail[0]->url."\" width=\"160\" height=\"160\" style=\"margin:1px 0 0 4px;\"></a>"; echo "<span>"; echo $userEntry->gphotoName->text; echo "</span>"; echo "</span>"; } } catch (Zend_Gdata_App_HttpException $e) { echo "Error: " . $e->getMessage() . "<br />\n"; if ($e->getResponse() != null) { echo "Body: <br />\n" . $e->getResponse()->getBody() . "<br />\n"; } // In new versions of Zend Framework, you also have the option // to print out the request that was made. As the request // includes Auth credentials, it's not advised to print out // this data unless doing debugging // echo "Request: <br />\n" . $e->getRequest() . "<br />\n"; } catch (Zend_Gdata_App_Exception $e) { echo "Error: " . $e->getMessage() . "<br />\n"; } echo "</ul>"; } //=============================partie photos de l'album=============================== else{ //------------------- $service = new Zend_Gdata_Photos($client); $query = new Zend_Gdata_Photos_AlbumQuery(); $query->setUser("philippe.supair"); $query->setAlbumId($id_album); $photo = array(); try { $albumFeed = $service->getAlbumFeed($query); } catch (Zend_Gdata_App_Exception $e) { echo "Error: " . $e->getMessage(); } echo "<ul>"; foreach ($albumFeed as $albumEntry) { echo "<span>"; //echo $albumEntry->title->text. "<br />\n"; //echo $albumEntry->mediaGroup->thumbnail[2]->url. "<br />\n"; //echo $albumEntry->mediaGroup->thumbnail[1]->url . "<br />\n";taille mignature //echo $albumEntry->mediaGroup->thumbnail[0]->url . "<br />\n";taille mignature $mediaContentArray = $albumEntry->getMediaGroup()->getContent(); //$mediaContentArray = $albumEntry->getMediaGroup()->getContent();//exif:make //echo $photo["url"] = $mediaContentArray[0]->getUrl(). "<br />\n"; //echo $photo["height"] = $mediaContentArray[0]->getheight(). "<br />\n"; //echo $photo["width"] = $mediaContentArray[0]->getwidth(). "<br />\n"; //echo $albumEntry->id->text . " albumEntry->id->text <br />\n"; //echo $albumEntry->getGphotoId() . " albumEntry->getGphotoId() <br />\n"; //echo $albumEntry->getGphotoVersion() . " albumEntry->getGphotoVersion() <br />\n"; //echo $albumEntry->getGphotoSize() . " albumEntry->getGphotoSize() <br />\n"; //echo $albumEntry->getGphotoTimestamp() . " albumEntry->getGphotoTimestamp() <br />\n"; //echo $albumEntry->getExifMake() . " albumEntry->getExifMake() <br />\n"; //echo "<br />\n"; $photo["url"] = $mediaContentArray[0]->getUrl(); echo "<a href=\"".$photo["url"]."\"><img src=\"".$albumEntry->mediaGroup->thumbnail[2]->url."style=\"margin:1px 0 0 4px;\"></a>"; echo "</span>"; } echo "</ul>"; } ?>
Dernière modification par philippe2004 (07-06-2009 00:51:12)
Hors ligne
Bon, j'ai trouvé une solution qui fonctionne.
a titre d'exemple je mets le code ci dessous (si ça peut servir...il reste a creer un css)
Je pense que la rapidité d'exécution pourrait être améliorer à l'aide de zend_cache.
Le code est très largement inspiré de la doc Zend (qui est souvent remarquable)
<?php //attention dans ce cas l'album picasa doit être public. //==========================================autoload biblioteque //require_once "Zend/Loader.php"; //Zend_Loader::registerAutoload(); //============loader version 1.8+ require 'Zend/Loader/Autoloader.php'; $autoloader = Zend_Loader_Autoloader::getInstance(); //===============connexion Picasa web================================= $user = "xxxxxxxxxxxx";//login picasa $pass = "xxxxxxxxxxxx";//pass picasa if(isset($_GET['nom_album'])){ $nom_album = $_GET['nom_album'];} if(isset($_GET['nom_photo'])){ $nom_image = $_GET['nom_photo'];} $path = $_SERVER['PHP_SELF']."?page=photo"; //================information de session============================== $picasa_session = new Zend_Session_Namespace('picasa'); $picasa_session->setExpirationSeconds(500); if(isset($_GET['nom_photo'])){ $picasa_session->nom_image = $nom_image;} if($nom_album and !$_GET['nom_photo']){ $picasa_session->liste_image = array();//on reinitialise le tableau } $serviceName = Zend_Gdata_Photos::AUTH_SERVICE_NAME; $client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $serviceName); // update the second argument to be CompanyName-ProductName-Version $gp = new Zend_Gdata_Photos($client, "Google-DevelopersGuide-1.0"); ?> <div id="sidebar"> <?php try { $userFeed = $gp->getUserFeed("default"); foreach ($userFeed as $userEntry) { //echo $userEntry->title->text . "<br />\n"; //echo $userEntry->gphotoName->text . "<br />\n"; //echo $userEntry->id->text . "<br />\n"; //echo $userEntry->mediaGroup->thumbnail[0]->url . "<br />\n"; //echo "<img src=\"".$userEntry->mediaGroup->thumbnail[0]->url."\" width=\"\" height=\"\" style=\"margin:1px 0 0 4px;\">"; //echo $userEntry->getGphotoId() . "<br />\n"; //echo $userEntry->getGphotoUser () . "<br />\n"; //echo $userEntry->getGphotoNickname () . "Nickname<br />\n"; //echo $userEntry->getGphotoNumPhotos () . "getGphotoNumPhotos<br />\n"; //echo "<br />\n"; echo "<a href=\"".$path."&nom_album=".$userEntry->gphotoName->text."\" ><img src=\"".$userEntry->mediaGroup->thumbnail[0]->url."\" width=\"165\" height=\"165\" ;\"></a>"; } } catch (Zend_Gdata_App_HttpException $e) { echo "Error: " . $e->getMessage() . "<br />\n"; if ($e->getResponse() != null) { echo "Body: <br />\n" . $e->getResponse()->getBody() . "<br />\n"; } } catch (Zend_Gdata_App_Exception $e) { echo "Error: " . $e->getMessage() . "<br />\n"; } ?> </div> <div id="content"> <?php if($nom_album){ $query = $gp->newAlbumQuery(); $query->setUser($user); $query->setAlbumName($nom_album); $albumFeed = $gp->getAlbumFeed($query); foreach ($albumFeed as $albumEntry) { //echo $albumEntry->title->text . "<br />\n"; //echo $albumEntry->id->text . "<br />\n"; //echo $albumEntry->getGphotoAlbumId()->getText(). "<br />\n"; //echo "<br />\n"; $camera = ""; $contentUrl = ""; $firstThumbnailUrl = ""; $albumId = $albumEntry->getGphotoAlbumId()->getText(); $photoId = $albumEntry->getGphotoId()->getText(); if ($albumEntry->getExifTags() != null && $albumEntry->getExifTags()->getMake() != null && $albumEntry->getExifTags()->getModel() != null) { $camera = $albumEntry->getExifTags()->getMake()->getText() . " " . $albumEntry->getExifTags()->getModel()->getText(); } if ($albumEntry->getMediaGroup()->getContent() != null) { $mediaContentArray = $albumEntry->getMediaGroup()->getContent(); $contentUrl = $mediaContentArray[0]->getUrl(); } if ($albumEntry->getMediaGroup()->getThumbnail() != null) { $mediaThumbnailArray = $albumEntry->getMediaGroup()->getThumbnail(); $firstThumbnailUrl = $mediaThumbnailArray[0]->getUrl(); $firstThumbnailUrl_1 = $mediaThumbnailArray[1]->getUrl(); $firstThumbnailUrl_2 = $mediaThumbnailArray[2]->getUrl(); } //echo "AlbumID: " . $albumId . "<br />\n"; //echo "PhotoID: " . $photoId . "<br />\n"; //echo "Camera: " . $camera . "<br />\n"; //echo "Content URL: " . $contentUrl . "<br />\n"; //echo "First Thumbnail: " . $firstThumbnailUrl . "<br />\n"; //echo "First Thumbnail 1: " . $firstThumbnailUrl_1 . "<br />\n"; //echo "First Thumbnail 2: " . $firstThumbnailUrl_2 . "<br />\n"; $firstThumbnailUrl_3 = str_replace("/s288/", "/s800/", $firstThumbnailUrl_2); if(!$nom_image){ $picasa_session->liste_image[] = $firstThumbnailUrl_3; echo "<a href=\"".$path."&nom_photo=".$firstThumbnailUrl_3."&nom_album=".$nom_album."\" ><img src=\"".$firstThumbnailUrl_2."\" ></a>"; } if($nom_image){ echo "<img src=\"".$nom_image."\" ;\">"; echo "<br />\n"; //print_r($picasa_session->liste_image); echo "<div>"; foreach ($picasa_session->liste_image as $image){ $vignette = str_replace("/s800/", "/s72/", $image); echo "<a href=\"".$path."&nom_photo=".$image."&nom_album=".$nom_album."\" ><img src=\"".$vignette."\" ;\"></a>"; } echo "</div>"; break; } } } echo "<br />\n"; ?> </div>
Hors ligne