2010-06-23 14 views
5

Czytnik Google API Wygląda na to, że spodziewasz się czegoś innego w kwestii uwierzytelniania już dziś!Problem z uwierzytelnianiem czytnika Google Reader

Około tygodnia temu pobrałem this i wszystko działa, a ja próbuję przenieść to na java. Dla mojego kodu działa on idealnie (z pomocą przykładów) do dzisiaj. Stosuję śledzenie wszystkiego i odkryłem, że nagle czytnik Google nie akceptuje tylko identyfikatora SID jako pliku cookie. I oczywiście, testuję też uruchomić przykładową aplikację i nie działa ona tak dobrze.

Potem poszedłem do manipulowania danymi z Czytnika Google i usunąłem wszystkie wpisy do pliku cookie z wyjątkiem identyfikatora SID, i to nie działa (dobrze daje 401, podobnie jak moja aplikacja i twoja próbka); Przetestowałem ponownie i odkryłem, że teraz potrzebuje innego wpisu o nazwie HSID, który w porównaniu z SID (który ma więcej niż 100 słów) wynosi około 10-20 słów. Czy ktoś wie, gdzie możemy uzyskać ten dodatkowy HSID?

PS Mogę wykonać HTTPS w celu uwierzytelnienia, a Google zwraca mi trzy tokeny (SID, LSID, AUTH). Ale nigdzie nie mogę zgadnąć, co to jest HSID.

Odpowiedz

10

Zrobiłem to. Tak, link dostarczone przez sfa ma rację. Ale format jest zbyt niejasny. Oto jak to zrobić.

  1. Opublikuj w: https://www.google.com/accounts/ClientLogin z danymi logowania.
  2. W zamian za prawidłowe zalogowanie zostaną przekazane trzy tokeny: a. SID b. LSID c. Auth
  3. Zapisz Auth gdzieś w aplikacji. Zapomnij o Sid i LSID (chyba mogliby je usunąć później)
  4. Na każde żądanie, należy dodać następującą informację w nagłówku: HeaderName: Upoważnienie wartość: GoogleLogin auth = {Auth ciąg} np (w java)

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

To działa. Dzięki sfa za link.

+0

Nie otrzymałem 'Auth = ...' w odpowiedzi na logowanie, dopóki nie przekazałem 'service: reader' w żądaniu logowania. –

3

Musisz dodać autoryzację GoogleLogin auth = xxx do swojego nagłówka. Oto cytat z message:

Oto krótkie podsumowanie tego, jak zrobić ta zmiana: Dla tych aplikacji, które obszar już uzyskania uwierzytelnienia od https://www.google.com/accounts/ClientLogin należy wrócić jako część odpowiedzi wartość Auth =. Na każde żądanie wysłane do Czytelnika należy podać tę wartość jako nagłówek HTTP i wszystko będzie działać jak zwykle. Format nagłówek brzmi: odpowiedzialny: GoogleLogin auth = [wartość uzyskane z ClientLogin]

Conferm że to działa! Mam ten sam błąd i już rozwiązałem problem. See it here.

+0

tak. Próbuję zmodyfikować czytnik Google i sprawdzić, który parametr jest potrzebny, tak jak to napisałem w moim pytaniu. I nie działa, chyba że jest tam HSID. – xandy

Powiązane problemy