无法获得专辑列表

时间:2012-04-30 14:09:52

标签: java gdata-api google-data-api picasa

我想从我的Google Picasa帐户中获取相册列表。我试过了this指南。问题是它成功验证,但不会返回任何相册(请参阅下面的代码)。我仍然可以发布新专辑。

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

import com.google.gdata.client.photos.PicasawebService;
import com.google.gdata.data.PlainTextConstruct;
import com.google.gdata.data.photos.AlbumEntry;
import com.google.gdata.data.photos.UserFeed;
import com.google.gdata.util.AuthenticationException;
import com.google.gdata.util.ServiceException;

public class Test {
    public static void main(String[] args) {
        String username = "myusername";
        String password = "mypassword";
        PicasawebService service = new PicasawebService("myapp");
        try {
            // Get list of albums. (AUTHENTICATION SUCCESSFUL BUT NO ALBUM RETURNED)
            service.setUserCredentials(username, password);
            URL url = new URL("https://picasaweb.google.com/data/feed/api/user/" + username + "?kind=album");
            UserFeed feed = service.getFeed(url, UserFeed.class);           
            List<AlbumEntry> albums = feed.getAlbumEntries();
            System.out.println(albums.size());

            // Create an album. (SUCCESSFUL, I CAN SEE IT IN MY PICASA)
            URL postUrl = new URL("https://picasaweb.google.com/data/feed/api/user/" + username);
            AlbumEntry myAlbum = new AlbumEntry();
            myAlbum.setTitle(new PlainTextConstruct("Trip to France"));
            myAlbum.setDescription(new PlainTextConstruct("My recent trip to France was delightful!"));
            AlbumEntry insertedEntry = service.insert(postUrl, myAlbum);
            System.out.println(insertedEntry.getName());
        } catch (AuthenticationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ServiceException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }       
    }
}

这是控制台输出:

0
TripToFrance03

1 个答案:

答案 0 :(得分:5)

您可能从类路径中丢失gdata-photos-meta-2.0.jar。代码将在没有jar的情况下编译和运行,但getAlbumEntries()不会返回任何内容。