当前位置:  开发笔记 > 编程语言 > 正文

Google Reader API Unread Count

如何解决《GoogleReaderAPIUnreadCount》经验,为你挑选了3个好方法。

Google阅读器是否有API?如果是这样,我如何知道特定用户知道其用户名和密码的未读帖子数量?



1> jimmyorr..:

此网址会为您提供每个Feed的未读帖子数.然后,您可以遍历Feed并总结计数.

http://www.google.com/reader/api/0/unread-count?all=true

这是Python中的一个极简主义示例...解析xml/json并将计数相加作为读者的练习:

import urllib
import urllib2

username = 'username@gmail.com'
password = '******'

# Authenticate to obtain SID
auth_url = 'https://www.google.com/accounts/ClientLogin'
auth_req_data = urllib.urlencode({'Email': username,
                                  'Passwd': password,
                                  'service': 'reader'})
auth_req = urllib2.Request(auth_url, data=auth_req_data)
auth_resp = urllib2.urlopen(auth_req)
auth_resp_content = auth_resp.read()
auth_resp_dict = dict(x.split('=') for x in auth_resp_content.split('\n') if x)
auth_token = auth_resp_dict["Auth"]

# Create a cookie in the header using the SID 
header = {}
header['Authorization'] = 'GoogleLogin auth=%s' % auth_token

reader_base_url = 'http://www.google.com/reader/api/0/unread-count?%s'
reader_req_data = urllib.urlencode({'all': 'true',
                                    'output': 'xml'})
reader_url = reader_base_url % (reader_req_data)
reader_req = urllib2.Request(reader_url, None, header)
reader_resp = urllib2.urlopen(reader_req)
reader_resp_content = reader_resp.read()

print reader_resp_content

以及关于该主题的一些其他链接:

http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI

如何从(非Web)python客户端访问经过身份验证的Google App Engine服务?

http://blog.gpowered.net/2007/08/google-reader-api-functions.html


大!同样重要的是让人们开始对谷歌阿比的跟踪这张票,使谷歌停止锁的人进入greader:http://code.google.com/p/gdata-issues/issues/detail?id=29&sort=-stars&colspec = API%20ID%20Type%20Status%20Priority%20Stars%20Summary

2> Gulzar Nazim..:

它就在那里.尽管如此仍处于测试阶



3> livibetter..:

以下是此答案的更新

import urllib
import urllib2

username = 'username@gmail.com'
password = '******'

# Authenticate to obtain Auth
auth_url = 'https://www.google.com/accounts/ClientLogin'
#auth_req_data = urllib.urlencode({'Email': username,
#                                  'Passwd': password})
auth_req_data = urllib.urlencode({'Email': username,
                                  'Passwd': password,
                                  'service': 'reader'})
auth_req = urllib2.Request(auth_url, data=auth_req_data)
auth_resp = urllib2.urlopen(auth_req)
auth_resp_content = auth_resp.read()
auth_resp_dict = dict(x.split('=') for x in auth_resp_content.split('\n') if x)
# SID = auth_resp_dict["SID"]
AUTH = auth_resp_dict["Auth"]

# Create a cookie in the header using the Auth
header = {}
#header['Cookie'] = 'Name=SID;SID=%s;Domain=.google.com;Path=/;Expires=160000000000' % SID
header['Authorization'] = 'GoogleLogin auth=%s' % AUTH

reader_base_url = 'http://www.google.com/reader/api/0/unread-count?%s'
reader_req_data = urllib.urlencode({'all': 'true',
                                    'output': 'xml'})
reader_url = reader_base_url % (reader_req_data)
reader_req = urllib2.Request(reader_url, None, header)
reader_resp = urllib2.urlopen(reader_req)
reader_resp_content = reader_resp.read()

print reader_resp_content

Google阅读器在2010年6月左右删除了SID身份验证(我认为),使用来自ClientLogin的新Auth是一种新方式,它更简单(标头更短).您将不得不添加service数据用于请求Auth,我注意到Auth如果您不发送请求,则不会返回service=reader.

您可以在此主题中了解有关更改身份验证方法的更多信息.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有