This PHP code can be used to get
- The last 10 public pics for a user
- The URL's to the original images
- The URL's to the thumbnails
- The URL's to the original Picasa page where the images are hosted.
(please pardon the formatting)
<?php
/*
display the last 10 public picasa pics for the user
*/
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Photos');
Zend_Loader::loadClass('Zend_Http_Client');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Uri_Http');
require_once('Zend/Oauth/Consumer.php');
require_once ('Zend/Gdata/Photos.php');
//set google parameters: last three parameters are constant for google api's
$oauthOptions = array(
'requestScheme' => Zend_Oauth::REQUEST_SCHEME_HEADER,
'version' => '1.0',
'consumerKey' => $CONSUMER_KEY,
'consumerSecret' => $CONSUMER_SECRET,
'signatureMethod' => 'HMAC-SHA1',
'callbackUrl' => 'your call back URL here',
'requestTokenUrl' =>'https://www.google.com/accounts/OAuthGetRequestToken',
'userAuthorizationUrl' => '$https://www.google.com/accounts/OAuthAuthorizeToken',
'accessTokenUrl' => 'https://www.google.com/accounts/OAuthGetAccessToken'
);
//select the token for this user from the DB
//this is the OAUTH access token for this user for Picasa. Look at other blog(OAUTH-coming soon) //for more details
$accessToken=unserialize($result->token);
//get google client and last 10 public photos
$httpclient=$accessToken->getHttpClient($oauthOptions);
$gp=new Zend_Gdata_Photos($httpclient,"fun-widgets");
// Creates a Zend_Gdata_Photos_UserQuery
$query = $gp->newUserQuery();
// indicate the user's feed to retrieve. default uses the user whose token we are using
$query->setUser("default");
// set to only return photos
// the default kind value for a user feed is to include only albums
$query->setKind("photo");
$query->setAccess("public");
$query->setMaxResults("10");
try {
$userFeed= $gp->getUserFeed(null, $query);
//the user name in case you need it
//$username=$userFeed->getGphotoUser()->getText();
//var_dump($username); //iterate over the original image URL's and get the the main picasa URL
foreach ($userFeed as $entry) {
$tmpArray=$entry->getLink();
//here is your public picasa URL for the image
var_dump($tmpArray[1]->getHref());
//in case you can manage with the thumbnail
$thumbnail = $entry->getMediaGroup()->getThumbnail();
$imageUrl=$thumbnail[1]->url;
//url for the original image
$content= $entry->getMediaGroup()->getContent();
$imageUrl= $content[0]->getUrl();
}
} 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";
}
?>