如果想要使用Google Data API,在Google中有幾種認證提供選擇!
在這裡利用AuthSub來做說明!!
在Google App Engine中使用Google行事曆!
首先我們必須先去申請AuthSub!
網址在這!
然後必須先AddDomain!
這邊我們加入了一個Domain為: ken-note.appspot.com
注意:一定要是根目錄!不能是: ken-note.appspot.com/login
新增成功後呢!
Google必須驗證此Domain的擁有權是否為你的!
有三種新增方式:
- 中繼標記 (就是把code放在head之中)
- 上載HTML檔 (Google會提供一個HTML檔案,把它上傳至gae後,按驗證即可)
- 新增DNS記錄 (因為一定要是domain的擁有人才可以新增,我們不是appspot.com的擁有人,因此不能新增)
這邊我們用第一個例子來做說明!
只要在您首頁的header加入meta,譬如是:index.jsp
如:
<head>
<meta name="google-site-verification" content="bHmA4RSzJdTse8mArcUO47g0rLfAYTOjxsq9E7i6sog" />
</head>
在上圖的紅色方塊中,我們需填入我們需要對Google行事曆作操作的page..
在這個例子就是http://ken-note.appspot.com/select/calendar
接著按下save即可!!
申請工作就完成了!!
接著就來寫CODE了!
打開你的eclipse吧!!
首先必須先產生一個連結!
讓使用者點選!
點選以後會到一個頁面(Google給您的)來做確認是否要存取行事曆!
那段CODE如下
<%
String strUrl= AuthSubUtil.getRequestUrl("http://ken-note.appspot.com/select/calendar","http://www.google.com/calendar/feeds/",false,true);
String strLink = "<a href=\"" + strUrl + "\" "+onclick+">點選此處登入Google行事曆。</a>";
%>
<%=strLink %>
AuthSubUtil.getRequestUrl(填入如在驗證擁有權的page,填入要存取的服務,false,true);
接著就來寫對google行事曆作操作的code!
就是該/select/calendar page
CalendarService cs = new CalendarService("test"); //先create一個Calendar Service的Object
String token = AuthSubUtil.getTokenFromReply(request.getQueryString()); //接著要取得token,token是google回傳給您的
token = AuthSubUtil.exchangeForSessionToken(token, null); //進行轉換的動作!
cs.setAuthSubToken(token);
java.net.URL feedUrl = new java.net.URL("http://www.google.com/calendar/feeds/default/allcalendars/full");
CalendarFeed resultFeed = cs.getFeed(feedUrl, CalendarFeed.class); //進行連線
for (int i = 0; i < resultFeed.getEntries().size(); i++) {
CalendarEntry entry = resultFeed.getEntries().get(i);
response.getWriter().print(entry.getTitle().getPlainText()); //取得行事曆的內文,entry(CalendarEntry)底下有很多method,大家可以自行試試看
}
照著上列步驟操作即可完成對Google 行事曆作操作了!