news - las mejores apis
Cuenta no leĆda de Google Reader API (4)
¿Google Reader tiene una API y, de ser así, cómo puedo obtener el recuento de la cantidad de publicaciones no leídas para un usuario específico que conoce su nombre de usuario y contraseña?
Aquí hay una actualización de esta respuesta
import urllib
import urllib2
username = ''[email protected]''
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 Reader eliminó la autenticación de SID alrededor de junio de 2010 (creo), usar la nueva autenticación de ClientLogin es la nueva forma y es un poco más simple (el encabezado es más corto). Tendrá que agregar service
en los datos para solicitar Auth
, noté que no devolvió Auth
si no envía el service=reader
.
Puede leer más sobre el cambio de método de autenticación en este hilo .
En la API publicada en [1], el campo "token" debería ser "T"
Está http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI . Aún en Beta, sin embargo.
Esta URL le dará un recuento de publicaciones no leídas por feed. A continuación, puede iterar sobre los feeds y resumir los recuentos.
http://www.google.com/reader/api/0/unread-count?all=true
Aquí hay un ejemplo minimalista en Python ... el análisis del xml / json y la suma de los conteos se deja como un ejercicio para el lector:
import urllib
import urllib2
username = ''[email protected]''
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
Y algunos enlaces adicionales sobre el tema: