google reader api
Google Reader 是一個使用了大量JavaScript構建的feed聚合器,它能非常及時地抓取最新的feed數據。Google的Ajax前臺調用到的數據采用了Atom格式,這種數據技術降低了Google Reader的開發難度,同時也使得第三方應用很容易對其進行擴展。
Feed獲取
/reader/atom/feed/
不管feed一開始采用了什么格式,Google都將其轉化為Atom格式。所有的RSS feed包含一切在提要里邊出現的所有元素,這一點和My Yahoo! backend不一樣,Yahoo的不包含任何附加的元數據。
你可以一下的格式從Google Reader訪問任何feed:
- http://www.google.com/reader/atom/feed/ + [Feed地址]
你可以通過參數n設置返回的文章數量,默認為20。
Google忽略掉在閱讀器里邊沒有用的數據,它們包括命名空間(如Apple iTunes podcast、Yahoo! Media RSS的命名空間)、作者信息(如email、主頁地址等)、甚至于版權等內容。
訂閱列表
/reader/atom/user/[user id]/pref/com.google/subscriptions
Google Reader的feed訂閱列表包含用戶當前訂閱的和已經被刪除的訂閱。每個feed包含其地址、發布和更新時間、用戶標記的標簽(如果有的話)。當前訂閱都被歸類到閱讀列表狀態。通過設置complete為true,你還可以獲取到所有的feed列表。
這里是我在Google Reader用戶ID全部為0的賬戶的訂閱列表。我沒有訂閱我自己的RSS feed,不過給我的Atom feed打上了標簽。不管在原feed里邊是否聲明了作者,在每個列出的feed包含author元素都是空的。也許Google計劃增加feed的認領服務,不過即使是他們自己的Google Blog,也還是沒有任何額外的作者信息。
閱讀列表
/reader/atom/user[user id]/state/com.google/reading-list
我最喜歡Google Reader的閱讀列表功能,它能直接訪問到我訂閱feed中所有未讀的文章,以一種“新聞流”的方式展現它們。
這里有一個我的閱讀列表的例子,你同樣可以通過參數n設置返回文章的數量。
已閱讀文章
http://www.google.com/reader/atom/user/[user ID]/state/com.google/read
你可以通過這個API獲取到用戶在Google Reader里邊已讀的文章。如果想通過用戶最近閱讀的100篇文章分析其趨勢或者實現對它們的查詢,那么這個功能就很有用了。參數n同樣可以設置返回的文章數量。
某標簽下的文章列表
/reader/atom/user/[user id]/label/[tag]
你還可以查看指定標簽下最近發表的文章。比如你把很多feed標記為“營銷”,只是想訪問有關營銷的feed,這就很有用了。返回的內容中包含已讀和未讀的文章。已讀的文章被歸類到已讀(state/com.google/read),你可以通過這判斷是否將它們隱藏起來。返回的數量可以通過參數n來判斷。
標星文章
/reader/atom/user[user id]/state/com.google/starred
Google Reader允許用戶對文章標星。這些標星文章包括有feed地址、標簽、發布/更新時間。你可以通過參數n指定返回的數量,默認為20。
Google將標星項目視作一種特殊的標簽,因此輸出的內容和標簽下文章列表結構一致。
添加或刪除訂閱
/reader/api/0/edit-subscription
使用POST請求訪問Google Reader的API,你可以添加任何feed到Google Reader的訂閱列表。
- /reader/api/0/edit-subscription -- 基本地址
- ac=["subscribe" 或者 "unsubscribe"] -- 請求動作
- s=feed%2F[feed URL] -- 請求的訂閱
- T=[命令標識] -- Google發布的具有時效性的標識,可以通過/reader/api/0/token獲取。
添加標簽
/reader/api/0/edit-tag
通過HTTP的POST請求可以給一個feed或單獨的文章打上標簽。
- /reader/api/0/edit-tag -- 基本地址
- s=feed%2F[feed URL] -- 你想打標簽的feed地址
- i=[item id] -- 出現在feed中的文章的id,可選,用來給個別的文章打標簽。
- a=user%2F[user ID]%2Flabel%2F[標簽] -- 請求動作,添加標簽給feed,文章,或者兩者。
- a=user%2F[user ID]%2Fstate%2Fcom.google%2Fstarred -- 標星文章。
- T=[special scramble] -- 關于用戶和新標簽的信息。可能處于安全因素考慮,尚未公開。
總結
基于對Google上面這些和縣官服務的請求,你有可能構建自己的feed閱讀器。你可以把Google作為你的后臺,創建具有全新體驗的在線和離線的程序,利用Google的ID,略施小計,你還可以創建更加高級的功能。
Google已經在這些數據API之上建立了第一個程序——Google Reader,從他們對API地址的選擇之上來看的話,Google Reader應該不是最后一個基于這些數據集的程序。我喜歡數據調用的開放,Google Reader 的API是如此簡單,相信會引導Google和第三方開發者創建更多的新應用!