都一定要reference 4個jar檔,
- gdata-core-1.0.jar
- gdata-media-1.0.jar
- gdata-photos-2.0.jar
- 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();
}
}
}
這樣就完成了讀取相簿列表