picasa api - 如何获得具有专辑ID的特定专辑?

时间:2012-01-21 02:54:21

标签: python django api picasa

如何从picasa api获取特定专辑?

目前我正在做这样的事情:

def album(gd_client, album_id, user):
    all_albums = albums(gd_client,user)
    for album in all_albums:
        if album.service_id == album_id:
            return album

这意味着我会收到所有相册并过滤掉我需要的相册。

但必须有一种更简单,更有效的方法。

谢谢!

2 个答案:

答案 0 :(得分:2)

在Google数据协议版本2.0中,有PartialResponse的实验性支持,它允许您通过传入fields参数来过滤服务器上的响应。

不幸的是,只有Java API支持2.0,但你可以自己轻松地将它添加到Python API中。

答案 1 :(得分:0)

看起来你想要"进入" API。以下是我如何获取公开相册的AlbumEntry(不想处理身份验证):

base = "https://picasaweb.google.com";
user = "101405741057659770470" # myself
albumid = "6333524051829767505"
# must be inside of a function to use locals()
url = "%(base)s/data/entry/api/user/%(user)s/albumid/%(albumid)s" % locals()

gd_client = gdata.photos.service.PhotosService()

entry = gd_client.GetEntry(url)
assert isinstance(entry, gdata.photos.AlbumEntry)

类似于Java:

String baseURL = "https://picasaweb.google.com";
String userId = "101405741057659770470" // myself
String albumid = "6333524051829767505"
String albumUrl = String.format(
    "%s/data/entry/api/user/%s/albumid/%s", baseURL, userId, albumId);
// myService is defined here: https://developers.google.com/picasa-web/docs/2.0/developers_guide_java
AlbumEntry entry = myService.getEntry(new URL(albumUrl), AlbumEntry.class, (DateTime) null /* modified since*/);