Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-05-2009 13:46:52

philippe2004
Nouveau membre
Date d'inscription: 24-03-2008
Messages: 8

[Résolu][Zend_Gdata][1.7] "erreur google"

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




Code:

<?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

 

#2 07-06-2009 00:50:20

philippe2004
Nouveau membre
Date d'inscription: 24-03-2008
Messages: 8

Re: [Résolu][Zend_Gdata][1.7] "erreur google"

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)

Code:

<?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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages