Счетчик непрочитанных сообщений Google Reader API

Есть ли у Google Reader API, и если да, то как я могу подсчитать количество непрочитанных сообщений для конкретного пользователя, зная его имя пользователя и пароль?

@GateKiller: Я понимаю мотивацию для добавления тега "code-request" на это ... У меня также есть открытая награда за вопрос, где единственным ответом является ссылка на (неработающую) документацию API, и меня раздражает то, что Я в конечном итоге заплачу 300 репутации тому, кто только что погуглил по моим ключевым словам.

Shog9 24.02.2009 20:28

Но тег не служит никакой цели. Скорее, вы должны добавить примечание к фактическому вопросу, указав, что вам понравится образец кода.

Shog9 24.02.2009 20:29
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как создать простое погодное приложение на Python с API OpenWeatherMap
Как создать простое погодное приложение на Python с API OpenWeatherMap
Этот учебник проведет вас через процесс создания простого погодного приложения с помощью Python и OpenWeatherMap API.
Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
В этом руководстве вы узнаете, как использовать API парсинга квитанций за 5 минут с помощью JavaScript. Eden AI предоставляет простой и удобный для...
26
2
16 376
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Это там. Тем не менее, все еще в бета-версии.

Этот вопрос отвечает на вопрос в том виде, в каком его задают. Если есть какая-то причина, по которой автор вопроса не считает ее достаточной, возможно, ему следует отредактировать свой вопрос, чтобы уточнить.

EBGreen 24.02.2009 18:40

Как бы мне ни хотелось, это НЕ официальный API Google Reader. Это просто перестроенная догадка, которая может сломаться в любой момент.

Andriy Drozdyuk 08.07.2010 23:58
Ответ принят как подходящий

Этот URL-адрес даст вам количество непрочитанных сообщений на канал. Затем вы можете перебирать фиды и суммировать подсчеты.

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

Вот минималистичный пример на Python ... парсинг xml / json и суммирование счетчиков оставлен в качестве упражнения для читателя:

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

И еще несколько ссылок по теме:

Для общего интереса - после изменений, внесенных в API Google Reader в июне, этот пример больше не работает ...

Joe 08.07.2010 21:23

Исправлен этот пример. Спасибо livibetter - я читал об изменении SID -> Auth, но нигде не видел документированной части 'service': 'reader'.

jimmyorr 19.08.2010 18:02

Большой! Также важно, чтобы люди запускали этот тикет в трекере Google Api, чтобы Google перестал блокировать людей в greader: code.google.com/p/gdata-issues/issues/…

Daniel Ribeiro 19.08.2010 21:39

В API, опубликованном в [1], поле «токен» должно быть «T».

[1] http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI

Это не научная статья. Вы можете размещать ссылки [1] в строке! :-)

Andriy Drozdyuk 08.07.2010 23:59

@drozzy Я работаю в предположении, что вы не шутите. Все, что сделал Ясин, это пропустил двоеточие. Двоеточие сразу после второго [1] соответствует синтаксису уценки и делает его встроенной ссылкой. Это может быть быстрее, без необходимости щелчка мышью, а затем с использованием предоставленного графического интерфейса.

Davorak 29.01.2011 03:53

Извините, не знаю, что на меня нашло.

Andriy Drozdyuk 01.02.2011 01:51

Вот обновление этот ответ

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 удалил аутентификацию SID примерно в июне 2010 года (я думаю), использование новой аутентификации из ClientLogin - это новый способ, и он немного проще (заголовок короче). Вам нужно будет добавить service в данные для запроса Auth, я заметил, что Auth не возвращается, если вы не отправляете service=reader.

Подробнее об изменении метода аутентификации можно прочитать в эта ветка.

Другие вопросы по теме