google reader api

作者: grayboy  來源: 博客園  發布時間: 2011-02-28 21:45  閱讀: 1231 次  推薦: 0   原文鏈接   [收藏]  

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和第三方開發者創建更多的新應用!

參考資料:http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI

0
0
 
標簽:google reader
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()