15 December 2010
不管你在哪裡(GAE、Java Application)要使用Picasa

都一定要reference 4個jar檔,


  1. gdata-core-1.0.jar
  2. gdata-media-1.0.jar
  3. gdata-photos-2.0.jar
  4. google-collect-1.0-rc1.jar


可是Google Code的說明文件卻少說一個,

文件上並沒有叫人家reference第四個,

但是要reference進來才不會有錯

reference進去以後就開始撰寫程式碼了



這邊是以一個固定帳號去做登入

跟之前在GAE中使用行事曆的例子不一樣

那個例子是會有Google登入畫面讓使用者輸入自己的帳號密碼,

然後去存取使用者自己本身的行事曆

不過這個例子不是,這個例子是用寫死的帳號密碼登入

(如果妳一樣要讓使用者填選,那麼也是要用AuthSub來認證,可以去行事曆那個例子看,差不多)


開始撰寫程式碼了

package edu.chao.lab.servlet;

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

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gdata.client.photos.PicasawebService;
import com.google.gdata.data.photos.AlbumFeed;
import com.google.gdata.data.photos.GphotoEntry;
import com.google.gdata.util.ServiceException;

public class test extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
try {
String strAcc = "你的帳號";
String strPwd = "你的密碼";

PicasawebService service = new PicasawebService("sample");
service.setUserCredentials(strAcc, strPwd); //登入
URL feedUrl = new URL("https://picasaweb.google.com/data/feed/api/user/"+strAcc+"?kind=album");
AlbumFeed myUserFeed = service.getFeed(feedUrl, AlbumFeed.class); //取得所有相簿烈表
List<GphotoEntry> lAlbum = myUserFeed.getEntries();

for (GphotoEntry myAlbum : lAlbum) {
resp.getWriter().println(myAlbum.getTitle().getPlainText());//印出相簿名稱
resp.getWriter().println(myAlbum.getGphotoId()); //印出相簿編號


}
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}







這樣就完成了讀取相簿列表










blog comments powered by Disqus