2010-10-31 10 views
3

Y a-t-il une API Google Reader à laquelle je peux me connecter? Je construis un lecteur RSS/Atom propre en PHP et aimerais obtenir tous les goodies de Google Reader comme l'histoire d'un flux, en mesure d'ajouter des commentaires à chaque élément de fil, etcAPI Google Reader?

Répondre

9

J'ai intégré l'intégration de google reader en python, mais je peux partager certaines connaissances sur les API pour que vous puissiez commencer. output = json est également disponible pour tous.

Connexion: https www.google.com/accounts/ClientLogin

POST & email = email & passwd = mot de passe & service = lecteur & source = appname & continue = http: //www.google.com

de la benne de réponse Auth =

coup suivant: www.google.com/reader/api/0/token

HEADER au thorization = GoogleLogin auth = $ Auth

Cette réponse devient $ jeton pour la session. À partir de là, il suffit de passer une URL qui passe toujours cet en-tête auth et d'inclure le jeton dans la chaîne de requête ou la publication.

Obtient une liste de vos abonnements: www.google.com/reader/api/0/subscription/list?output=xml

Pour modifier ce abonnements est l'URL de base ainsi que quelques données post pour l'action effectuer

www.google.com/reader/api/0/subscription/edit?pos=0 & client = source $

POST ajouter: s = $ & t les cours d'eau = $ titre & T = $ jeton & ac = abonnez-vous

POST pour enlever: s = flux $ & T = $ jeton & ac = unsubscribe

Le flux de $ soutire généralement/$ feedurl comme celui-ci pour techcrunch, alimentation/http: // feeds.feedburner.com/Techcrunch

Désolé a dû manper certains des URLs parce que je n'ai pas encore assez de représentant.

+0

Merci! Cela semble "facile" pour moi d'utiliser l'API GR pour mon client RSS RSS. Avez-vous une démo de ce que vous avez construit =) –

+0

Le meilleur exemple est cette vidéo que j'ai posté sur youtube, http://www.youtube.com/watch?v = UWnb7o0utfA – smilbandit

+0

Existe-t-il un moyen d'ajouter un abonnement à Google Reader à l'aide de l'API? Merci! – PinoyStackOverflower

0

Google Reader a des flux pour l'utilisateur. Je suppose que vous pourriez les utiliser. En outre, ils sont prêts, vous obtiendrez des commentaires/likes ... dès qu'ils se produisent.

En outre, à compter du 1er juillet 2013, Google Reader n'est plus. Les options pour les remplacements incluent Superfeedr.

+0

Yupp, sachez que =) Mais mes utilisateurs devraient pouvoir ajouter/modifier/supprimer des flux à partir de mon application, et que l'alimentation devrait fonctionner comme dans Google Lecteur avec la possibilité de commenter, ajouter des notes, partager, etc –

2

ceci est un exemple de travail en python:

import urllib, urllib2 
import json, pprint 

email, password = '[email protected]', 'nowayjose' 
clientapp, service = 'reader', 'reader' 

params = urllib.urlencode({'Email': email, 'Passwd': password, 'source': clientapp, 'service': service}) 
req = urllib2.Request(url='https://www.google.com/accounts/ClientLogin', data=params) 
f = urllib2.urlopen(req) 

for line in f.readlines(): 
    if line[0:5] == 'Auth=': 
    auth=line[5:] 

root = "http://www.google.com/reader/api/0/" 

req = urllib2.Request(root + "token") 
req.add_header('Authorization', 'GoogleLogin auth=' + auth) 
f = urllib2.urlopen(req) 
token = f.readlines()[0] 

# get user id 
req = urllib2.Request(root + "user-info?output=json&token="+token) 
req.add_header('Authorization', 'GoogleLogin auth=' + auth) 
f = urllib2.urlopen(req) 
dictUser = json.loads(f.read()) 
user_id = dictUser["userId"] 
print "user_id",user_id 

req = urllib2.Request(root + "subscription/list?output=json&token="+token) 
req.add_header('Authorization', 'GoogleLogin auth=' + auth) 
f = urllib2.urlopen(req) 

# for line in f.readlines(): 
#  print line 
dictSubscriptions = json.loads(f.read()) 

# pprint.pprint(dictSubscriptions) 
# print the first 3 subscription titles 
for i in dictSubscriptions["subscriptions"][0:2]: 
    print i["title"] 

req = urllib2.Request("http://www.google.com/reader/api/0/unread-count?output=json&token="+token) 
req.add_header('Authorization', 'GoogleLogin auth=' + auth) 
f = urllib2.urlopen(req) 
dictUnread = json.loads(f.read()) 
# pprint.pprint(dictUnread) 
# print the first 3 unread folders 
for i in dictUnread["unreadcounts"][0:3]: 
    print i["count"], i["id"] 

# this returns all starred items as xml 
req = urllib2.Request("http://www.google.com/reader/atom/user/"+user_id+"/state/com.google/starred?token="+token) 
req.add_header('Authorization', 'GoogleLogin auth=' + auth) 
f = urllib2.urlopen(req) 
starredItems = f.read() 
Questions connexes