Google Calendarに今更に感動しました。 :-D
Google CanlendarをPukiWiki上で表示するpluginがつくりたいなぁと思い、調べたメモ。
-Google Data APIs Protocol
http://code.google.com/apis/gdata/protocol.html
-Using the Google Calendar Data API
http://code.google.com/apis/gdata/calendar.html
-Google Account Authentication
http://code.google.com/apis/accounts/Authentication.html
-GData非公式開発者ガイド
http://tinyurl.com/pn5ba
#blikimore
**いじってみたい [#oe070e79]
-Publicにしてみて、XMLを取り出すと[[こんな:http://www.google.com/calendar/feeds/b6dp60prnsdhaqjje7in8sh87s@group.calendar.google.com/public/basic]]URLになった。
-中身は「The Atom Syndication Format」の形式みたい。
--RFC 4287 The Atom Syndication Format 日本語
http://www.futomi.com/lecture/japanese/rfc4287.html
--Atom 1.0 Syndication Formatの概要
http://www-06.ibm.com/jp/developerworks/xml/050909/j_x-atom10.shtml
-どうやら、更新などは「The Atom Publishing Protocol」に準拠してるっぽい。
--The Atom API
http://www.atomenabled.org/developers/api/atom-api-spec.php
- Atom Feedのparserとしては下Seymorというのがよさげ。
--Seymor
http://seymour.sourceforge.net/
**いじってみる [#z4be2f63]
>When you send that GET request, Calendar returns an HTTP 302 redirect;
the redirect URL has a new query parameter, gsessionid, appended to it.
・・・略・・・
That gsessionid parameter is the way that Calendar keeps track of your session, to improve speed of response.
<
ふむふむ、GETリクエストするとリダイレクトされて、gsessionidというパラメータがつけられるらしい。ということは1セッションでいくつかのアクションをやりたかったら、gsessionを解釈して送らないといけない、ということですね。
$ telnet www.google.com 80
Trying 66.102.7.147...
Connected to www.google.com.
Escape character is '^]'.
GET /calendar/feeds/b6dp60prnsdhaqjje7in8sh87s@
group.calendar.google.com/public/basic HTTP/1.1
Host: www.google.com
HTTP/1.1 302 Moved Temporarily
Set-Cookie: S=calendar=WiebW1XurxE
Location: http://www.google.com/calendar/feeds
/b6dp60prnsdhaqjje7in8sh87s@group.calendar.google.com/
public/basic?gsessionid=WiebW1XurxE
Cache-control: private
Content-Length: 0
Date: Fri, 05 May 2006 01:34:05 GMT
Content-Type: text/html
Server: GFE/1.3
ほんとだ、gsessionがつきました。
** とりあえずPukiWikiのpluginを [#td7ab03e]
作りました。[[PukiWiki/google_calendar_viewerプラグイン]]
#blikifooter(志田)
tag: [[Web2.0>tag/Web2.0]], [[Google>tag/Google]], [[GoogleCalendar>tag/GoogleCalendar]], [[WebAPI>tag/WebAPI]]
tag: [[Web2.0>tag/Web2.0]], [[Google>tag/Google]], [[Google Calendar>tag/Google Calendar]], [[WebAPI>tag/WebAPI]]