Google Reader API简介

标签: google reader api | 发表时间:2011-07-13 16:36 | 作者:keakon Mooky
出处:http://www.keakon.net/
Google Reader是我最喜欢的web服务,可惜在iPhone上没有一个我理想中的客户端,所以只好自己动手丰衣足食了。
而开发的第一步自然就是搞定Google Reader API,可惜Google一直没有放出官方文档。所幸的是前人已经通过反向工程探寻出了相关信息(GoogleReaderAPIUsing the Google Reader APIGReader-Cocoa等),所以不用自己去一一摸索了。
不过文档有点老了,这期间Google也稍微改了一些东西,所以还需要稍作修正。

由于现在手头上没有Mac,所以就不用Objective-C,而拿Python来演示。这样代码量也会少很多,逻辑显得更加清晰。

在访问之前需要证明你的身份,所以先去https://www.google.com/accounts/ClientLogin获取登录凭证。
此处需要POST 3个字段:service为'reader',Email为Google账号,Passwd为密码。此外还可以附加source字段用于标明你的客户端,其中网页版是'scroll',iOS网页版是'mobilescroll',你可以随意改成其他字符串。
from urllib import urlencode
from urllib2 import urlopen, Request

LOGIN_URL = 'https://www.google.com/accounts/ClientLogin'
EMAIL = '你的邮箱'
PASSWORD = '你的密码'

request = Request(LOGIN_URL, urlencode({
	'service': 'reader',
	'Email': EMAIL,
	'Passwd': PASSWORD,
	'source': 'mobilescroll'
}))

f = urlopen(request)

然后会拿到这样一串字符串,一共3行:
SID=...
LSID=...
Auth=...
这里我们只需要Auth就行了,它一般是长期有效的:
lines = f.read().split()
auth = lines[2][5:]

拿到Auth后就可以使用Google Reader API了。具体方法就是访问API地址(见GoogleReaderAPI文档),然后把Auth作为Authorization。
例如获取订阅列表:
headers = {'Authorization': 'GoogleLogin auth=' + auth}
request = Request('https://www.google.com/reader/api/0/subscription/list?output=json', headers=headers)
f = urlopen(request)
print f.read()
就会拿到如下的信息:
{"subscriptions":[{"id":"feed/供稿地址","title":"供稿名","categories":[{"id":"user/Google Reader用户ID/label/分类名","label":"分类名"}],"sortid":"不知道啥玩意","firstitemmsec":"第一个条目的时间戳","htmlUrl":"供稿的网站地址"},...(其他供稿的信息)]}

不过如果要修改的话(一般是POST请求),还需要一个token参数。这个token与Auth不同,它很容易过期。因此如果失效了,需要再次请求一个。
请求的地址是http[s]://www.google.com/reader/api/0/token,它可以附带2个可选的GET参数:ck是时间戳,client是客户端名称。
request = Request('https://www.google.com/reader/api/0/token', headers=headers)
f = urlopen(request)
token = f.read()

拿到token后就可以进行订阅等操作了,例如订阅本站:
request = Request('https://www.google.com/reader/api/0/subscription/quickadd?output=json', urlencode({
	'quickadd': 'http://www.keakon.net/feed',
	'T': token
}), headers=headers)
f = urlopen(request)
print f.read()
会拿到这样的结果:
{"query":"http://www.keakon.net/feed","numResults":1,"streamId":"feed/http://www.keakon.net/feed"}
再去看看你的Google Reader,应该就订阅好本站了。

相关 [google reader api] 推荐:

Google Reader API简介

- Mooky - keakon的涂鸦馆
Google Reader是我最喜欢的web服务,可惜在iPhone上没有一个我理想中的客户端,所以只好自己动手丰衣足食了. 而开发的第一步自然就是搞定Google Reader API,可惜Google一直没有放出官方文档. 所幸的是前人已经通过反向工程探寻出了相关信息(GoogleReaderAPI、Using the Google Reader API和GReader-Cocoa等),所以不用自己去一一摸索了.

通过Google Reader API获取历史RSS条目

- rokeyhu - lync.in
有时候你看到了一个好的Blog,于是你订阅了它,但你会发现,如果直接访问订阅的RSS源,它只会返回最新的10-20条内容,这是由Blog服务器决定的. 如果偶们非常希望能够看到它以前所有的文章,怎么办呢. 订阅至Google Reader是个好办法,Google Reader发现你希望看到更多条目的时候,自动会获取更多的历史条目.

用Python开发可用于iPhone的Google Reader API

- MadFrog - 乱弹琵琶playit
Google Reader是我最喜欢的web服务,可惜在iPhone上没有一个我理想中的客户端,所以只好自己动手丰衣足食了. 而开发的第一步自然就是搞定Google Reader API,可惜Google一直没有放出官方文档. 所幸的是前人已经通过反向工程探寻出了相关信息(GoogleReaderAPI、Using the Google Reader API和GReader-Cocoa等),所以不用自己去一一摸索了.

Google+ API发布

- 屁清新健脑 - Solidot
开发者终于等来了期待已久的Google+ API. Google正式发布了允许读取用户公开信息的API,开发者可以借助API开发与Google+交互的应用程序,或将其整合到网站上. Google社交网站发布2个月来,经历了用户暴涨,但也出现了热度下降. Google+ API的发布也许能给予它一个新动力.

Google Reader将和Google+整合

- Richard - 月光博客
  Google Reader官方博客宣布,即将对Google Reader进行重大改版,并和Google+进行整合,新版本将重新设计,包括friending、following等功能将会被删除. 之前Google Reader的社交功能是和Buzz整合,随着Buzz的关闭,Google Reader的改版有可能会和以前的Buzz一样,将关注和被关注整合到Google+中,然后用户在Google Reader的分享自动同步到Google+.

Gmail、Google Reader工具合集

- 三心 - 天涯海阁-Web2.0Share
这些工具本人没有全部试过,所以不排除有些工具可能已经失效:). GCount - 新邮件通知,仅能运行于Mac OSX. gDisk - 将Gmail变为网络存储空间,仅能运行于Mac OSX. gFeeder - 小型的Feed阅读器. GetMail - 将邮件从Hotmail转移到Gmail.

Google Reader技巧杂谈

- baocheng - 般若黑洞
這是一篇被百度和諧掉的旧文,修改后重发. Google Reader——抓虾——鲜果转了一圈,最终又回到Google Reader. 凭借Google强大的技术优势和社会化改进,Google Reader已全面领先其他在线RSS阅读器而成为Paralife的首选. 不过谷鸽搜索的服务器早已搬到香港,何时候连用Google Reader也要翻-墻的时候,那就太杯具了.

Google Reader之技巧篇

- Hailiang - Desmondの小窝
很久以前有很详细地介绍过*Google Reader入门教程*,强烈推荐不了解或是刚刚接触Google Reader的童鞋们看一下. 1、利用文件夹和标签分类功能帮助你提高阅读效率、储存重要信息. 使用文件夹来管理你的订阅源,不仅仅是为了让你的阅读界面更简洁,它有着更重要的作用:通过按需分类提高阅读效率.

Google Reader 下周将改版

- 白肥 - 谷奥——探寻谷歌的奥秘
根据 Google Reader 的官方 Blog,Reader 下周将会有一个较大的改版. 主要有2个方面的改动:用户界面及整合 Google+. 估摸着用户界面的改动就是走向小清新化了(终于. ),而整合 Google+ 也顺理成章. 另外官方 Blog 还提到,既然整合了 Google+,那么原本那些社会化功能就该遭到清洗了.

Google Reader关闭一周年

- - Solidot
一年前,Google关闭了受欢迎的RSS阅读器Google Reader. 一年之后,你的阅读习惯是否发生了改变. 部分人相信Google有先见之明,他们已经不用RSS阅读器了. 然而还是有大量人继续在用,在Google Reader关闭之后,他们迁移到了各种替代,如Feedly、The Old Reader、Digg Reader等.