背景
我想列出我的帐户中与给定名称匹配的所有专辑。
问题
删除相册,然后重新创建同名的$albumQuery->setAlbumName( ... )
相册后,即使已成功创建相册,查找相册名称的代码也会失败并返回 404。
以下代码运行良好:
// This is correct -- adding photographs to albums works.
$client = $this->login( $user, $pass, $picasa );
$picasa = $this->newPhotographService( $client );
$albumQuery = $picasa->newAlbumQuery();
$albumQuery->setUser( $user );
$albumQuery->setAlbumName( "17" ); // This is the literal name of the album.
$albumQuery->setMaxResults( 10 );
此行在调用 后立即存在setMaxResults
,但失败:
$albumFeed = $picasa->getAlbumFeed( $albumQuery );
执行上述行时,会发生以下错误:
异常:预期响应代码 200,得到 404
更新#1
以下代码有效,但不一致:
echo "Search for the album named $accountId for $user\n";
$albumQuery = $picasa->newAlbumQuery();
$albumQuery->setUser( $user );
$albumQuery->setAlbumName( "ALBUM17" );
$albumQuery->setMaxResults( 1 );
$albumId = null;
try {
echo "\nGet album feed from albumQuery.\n";
$albumFeed = $picasa->getAlbumFeed( $albumQuery );
// The feed returns a list of photos; each photo has an album ID.
foreach( $albumFeed as $key => $entry ) {
$albumId = $entry->getGphotoAlbumId();
}
echo "\nFound album ID: ALBUM17\n";
}
catch( Zend_Gdata_App_Exception $ex ) {
echo "\nError: " . $ex->getMessage() . "\n";
echo "\nCreate album.\n";
// Create the album.
$albumId = $this->createAlbum( $picasa, "ALBUM17" );
echo "\nCreated album ID: ALBUM17\n";
}
这会按预期执行,直到专辑被删除。重新创建已删除的相册时,API 似乎找不到重新创建的名称。结果是上面的代码创建了同名的新专辑,这是不可取的。
更新#2
这似乎是一个错误;我记录了一个问题:
https://code.google.com/p/gdata-issues/issues/detail?id=4516
问题
如何使用 Picasa 的 PHP API 为已删除然后重新创建的相册检索相册 ID?