Проблема аутентификации Google Reader

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.

5
задан xandy 23 June 2010 в 08:33
поделиться

5 ответов

У меня получилось. Да, ссылка, предоставленная sfa, верна. Но формат слишком запутанный. Вот как я это делаю.

  1. Пишите на https://www.google.com/accounts/ClientLogin с учетными данными для входа.
  2. В ответ будут переданы три токена, если логин правильный: a. SID b. LSID c. Auth
  3. Сохраните Auth где-нибудь в приложении. Забудьте о SID и LSID (я думаю, они могут удалить их позже)
  4. В каждом запросе, добавьте следующее в заголовок: имя заголовка: Authorization значение: GoogleLogin auth={Auth string} например (на java)

    HttpGet method = new HttpGet(CommandUrl + QueryString); method.addHeader("Authorization", "GoogleLogin auth=" + Auth);

Это работает. Спасибо sfa за ссылку.

10
ответ дан 18 December 2019 в 11:53
поделиться

Вы должны добавить авторизацию GoogleLogin auth=xxx в ваш заголовок. Вот цитата из сообщения:

Вот краткое описание того, как сделать это изменение: Для тех приложений, которые уже получают аутентификацию от https://www.google.com/accounts/ClientLogin вы должны получить обратно в качестве части вашего ответа значение Auth=. Для каждого запроса, который вы отправляете на Reader, вы должны предоставить это значение в качестве HTTP-заголовка и все будет работать как обычно. Заголовок формат заголовка следующий: Authorization:GoogleLogin auth=[значение полученное из ClientLogin]

Убедитесь, что это работает! Я получил ту же ошибку и уже решил проблему. Смотрите здесь.

3
ответ дан 18 December 2019 в 11:53
поделиться

Подробности смотрите на http://code.google.com/p/google-reader-api/wiki/Authentication, но вкратце, поддерживаются только ClientLogin и OAuth. Пожалуйста, не продолжайте имитировать поток браузера (с SID и HSID cookies), это не поддерживается и может сломаться в любой момент.

1
ответ дан 18 December 2019 в 11:53
поделиться

при первом входе в систему используйте https://www.google.com/accounts/ServiceLoginAuth . вы получите hsid!

Я вижу, что все операции google reader api используют hsid.

я использую firebug могу видеть hsid в поле setCookie ответа

0
ответ дан 18 December 2019 в 11:53
поделиться

4 шага, описанные xandy, работают, спасибо.

Это моя реализация шагов xandy в .NET: http://sandrinodimattia.net/blog/post/Consuming-Google- (Reader) -with-NET-Part-1-Authentication.aspx

0
ответ дан 18 December 2019 в 11:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: