今天透過 firefox 的 "Firefox Google Bookmarks" 套件研究 Google 的 Bookmark 服務,我將他的整個流程分成下面幾個步驟:
這個步驟是取用 Google 服務的核心,主要目的是取得使用服務時的 Cookie ,取得 Cookie 的方式是透過 https://www.google.com/accounts/ServiceLoginAuth 以 POST 傳遞下面的參數
a. ltmpl=wsad
b. ltmplcache=2
c. continue=https%3A%2F%2Fmail.google.com%2Fmail%2F%3F
d. service=mail
e. rm=false
f. Email=Your Google ID
g. Passwd= Your Google Password
如果帳號和密碼正確,即可取得使用 Google 服務的 cookie。取得的 XML 格式如下:
<xml_api_reply version="1">
<bookmarks>
<bookmark>
<title>PCHOME</title>
<url>http://www.pchome.com.tw/</url>
<timestamp>1159092511925524</timestamp>
<id>13886029170967257073</id>
<labels>
<label>Homepage</label>
<label>^smh</label>
</labels>
</bookmark>
</bookmarks>
</xml_api_reply>
<Bookmarks> 是全部 Bookmark 的根節點,每個 <Bookmark>表示一個書籤,其中包含的元素有
a. title:標題
b. url:網址
c. timestamp:建立時間
d. id:識別碼,刪除 Bookmark 使用這個值
e. labels:所屬的標籤,可內含多個 <label> 元素。
2. 取得 Bookmark 的 XML
取得 Cookie 之後,如果要取得你的 Bookmark,必須透過 http://www.google.com/bookmarks/?output=xml 並使用下面的參數
1. sort=title : 排序方式,title 以標題排序,date 以建立該 Bookmark 日期排序
2. num=1000: 資了筆數
以 GET 方式取得 Bookmark XML
透過 http://www.google.com/bookmarks/mark 以 POST 方式使用下面參數來新增一個 Bookmark
1. bkmk=URL
2. title=標題:
3. labels=標籤:
4. annotation=這是註解:
4. 移除 Bookmark
使用 http://www.google.com/bookmarks/mark 以 POST 方式使用下面參數來移除一個 Bookmark
1. dlq=ID:Bookmark 識別碼
2. op=remove:操作識別
總結:
原則上只要能夠使用 HTTP Request 取得 Cookie,剩下的事情只是在正確的 URL 並給予合適的參數進行 Web Services 操作。