Google Reader API Кажется ожиданием чего-то другого для аутентификации сегодня!
Приблизительно неделю назад я загрузил это, и все работает, и я пытаюсь портировать это на Java. Для моего кода это работает отлично (со справкой на Ваших примерах) до сих пор. Я складываю трассировку всего, и я узнал, что внезапно Google Reader не принимает только SID как cookie. И конечно, я тестирую, запускает Ваше приложение приложения также, и оно не работает также.
Затем я пошел для вмешательства данных Google Reader, и я удаляю каждый cookie записи кроме SID, и это не работает (хорошо, это дает 401, точно так же, как мое приложение и образец); я протестировал снова, и я нашел, что этому теперь нужна другая запись cookie под названием HSID, который, сравните с SID (который является больше чем 100 словами долго), это - приблизительно 10-20 слов. Кто-либо знает, где мы можем получить тот дополнительный HSID?
PS я могу сделать HTTPS для аутентификации и Google, возвращает три маркера (SID, LSID, AUTH) мне. Но нигде я не могу предположить, каков HSID.
У меня получилось. Да, ссылка, предоставленная sfa, верна. Но формат слишком запутанный. Вот как я это делаю.
В каждом запросе, добавьте следующее в заголовок: имя заголовка: Authorization значение: GoogleLogin auth={Auth string} например (на java)
HttpGet method = new HttpGet(CommandUrl + QueryString); method.addHeader("Authorization", "GoogleLogin auth=" + Auth);
Это работает. Спасибо sfa за ссылку.
Вы должны добавить авторизацию GoogleLogin auth=xxx в ваш заголовок. Вот цитата из сообщения:
Вот краткое описание того, как сделать это изменение: Для тех приложений, которые уже получают аутентификацию от https://www.google.com/accounts/ClientLogin вы должны получить обратно в качестве части вашего ответа значение Auth=. Для каждого запроса, который вы отправляете на Reader, вы должны предоставить это значение в качестве HTTP-заголовка и все будет работать как обычно. Заголовок формат заголовка следующий: Authorization:GoogleLogin auth=[значение полученное из ClientLogin]
Убедитесь, что это работает! Я получил ту же ошибку и уже решил проблему. Смотрите здесь.
Подробности смотрите на http://code.google.com/p/google-reader-api/wiki/Authentication, но вкратце, поддерживаются только ClientLogin и OAuth. Пожалуйста, не продолжайте имитировать поток браузера (с SID и HSID cookies), это не поддерживается и может сломаться в любой момент.
при первом входе в систему используйте https://www.google.com/accounts/ServiceLoginAuth . вы получите hsid!
Я вижу, что все операции google reader api используют hsid.
я использую firebug могу видеть hsid в поле setCookie ответа
4 шага, описанные xandy, работают, спасибо.
Это моя реализация шагов xandy в .NET: http://sandrinodimattia.net/blog/post/Consuming-Google- (Reader) -with-NET-Part-1-Authentication.aspx