3

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

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
4

1 回答 1

5

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

于 2014-04-10T22:14:44.053 回答