Google Reader API? - PullRequest
       25

Google Reader API?

3 голосов
/ 31 октября 2010

Есть ли API Google Reader, к которому я могу подключиться?Я создаю чистую программу чтения RSS / Atom на PHP и хотел бы получить все полезные сведения из Google Reader, такие как история канала, возможность добавлять комментарии к каждому элементу канала и т. Д.

Ответы [ 3 ]

9 голосов
/ 05 ноября 2010

Я построил некоторую интеграцию с Google Reader в Python, но я могу поделиться некоторыми знаниями API, чтобы вы могли начать. выход = json также доступен для всех.

Логин: https www.google.com/accounts/ClientLogin

POST &email=email&passwd=password&service=reader&source=appname&continue=http://www.google.com

из ответа захватить Auth =

Следующий хит: www.google.com/reader/api/0/token

HEADER Authorization=GoogleLogin auth=$Auth

Этот ответ становится $ токеном для сеанса.

Оттуда он просто нажимает на URL, который всегда передает этот заголовок auth и включает токен в строку запроса или сообщение.

Получает список ваших подписок: www.google.com/reader/api/0/subscription/list?output=xml

.

Чтобы изменить подписки, это базовый URL-адрес плюс некоторые данные публикации для действия, которое нужно выполнить

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

ПОЧТА добавить: s=$streams&t=$title&T=$token&ac=subscribe

POST для удаления: s=$stream&T=$token&ac=unsubscribe

Обычно поток $ представляет собой feed / $ feedurl для techcrunch, feed / http: // feeds.feedburner.com/Techcrunch

Извините, пришлось исказить некоторые из URL, потому что у меня еще недостаточно повторений.

2 голосов
/ 23 марта 2011

это рабочий пример в python:

import urllib, urllib2
import json, pprint

email, password = 'jose@gmail.com', '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()
0 голосов
/ 31 октября 2010

Google Reader имеет каналы для пользователя. Я думаю, вы могли бы использовать их. Кроме того, они PubSubHubbub готовы, так что вы получите комментарии / лайки ..., как только они произойдут.

Кроме того, с 1 июля 2013 года Google Reader больше не существует. Варианты замены включают Superfeedr .

...