Est-ce que Google Reader possède une API et si oui, comment puis-je connaître le nombre de messages non lus pour un utilisateur spécifique connaissant son nom d'utilisateur et son mot de passe?API Google Reader Nombre de lectures non lu
Répondre
Cette URL indique le nombre de messages non lus par flux. Vous pouvez ensuite itérer sur les flux et résumer les comptes.
http://www.google.com/reader/api/0/unread-count?all=true
Voici un exemple minimaliste en Python ... l'analyse syntaxique du XML/JSON et la somme des comptes est laissé comme un exercice pour le lecteur:
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
Et quelques liens supplémentaires sur le sujet:
Pour l'interst général - depuis les modifications apportées à l'API Google Reader en juin, cet exemple ne fonctionne plus ... – Joe
A l'heure actuelle, le 9 août 2010, cela ne fonctionne plus. –
Correction de cet exemple. Merci à livibetter - j'avais lu sur le SID -> Changement d'authentification, mais n'a pas vu le «service»: partie «lecteur» documentée n'importe où. – jimmyorr
C'est there. Toujours en bêta cependant.
Cette question répond à la question au fur et à mesure qu'elle est posée. S'il y a une raison pour laquelle l'auteur de la question ne le trouve pas suffisant, peut-être devrait-il modifier sa question pour clarifier. – EBGreen
Beaucoup d'informations sur ce site sont obsolètes. –
Autant que je le voudrais, ce n'est pas une API Google Reader officielle. Il s'agit simplement d'une supposition inversée qui peut se rompre à tout moment. – drozzy
Dans l'API affichée dans [1], le champ "jeton" devrait être "T"
Ceci n'est pas un article scientifique. Vous pouvez placer des liens [1] en ligne! :-) – drozzy
@drozzy Je travaille sous l'hypothèse que vous ne plaisantez pas.Tout ce que Yassin a fait, c'est manquer un colon. Un deux-points directement après la seconde [1] correspond à la syntaxe markdown et en fait un lien en ligne. Cela peut être plus rapide, aucun clic de souris nécessaire, puis en utilisant l'interface gui fournie. – Davorak
Désolé, je ne sais pas ce qui s'est passé en moi. – drozzy
Voici une mise à jour this answer
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 retiré SID auth autour de Juin 2010 (je crois), l'utilisation de nouvelles auth de ClientLogin est la nouvelle façon et il est un peu plus simple (en-tête est plus courte) . Vous devrez ajouter service
dans les données pour demander Auth
, je ne remarqué Auth
retourné si vous n'envoyez pas le service=reader
.
Vous pouvez en savoir plus sur le changement de méthode d'authentification dans this thread.
@GateKiller: Je comprends la motivation pour lancer une balise « code demande » sur ce ... J'ai aussi une prime ouverte sur une question où la seule réponse est un lien vers la documentation de l'API (cassé), et m'énerve que je vais finir par payer 300 rep à quelqu'un qui vient de google mes mots-clés. – Shog9
Mais, l'étiquette ne sert à rien. Au contraire, vous devriez ajouter une note à votre question réelle indiquant que vous apprécieriez l'exemple de code. – Shog9