2010-11-23 2 views
3

У меня проблема с API-интерфейсом для проверки подлинности GReader. Я могу сделать HTTPS (https://www.google.com/accounts/ClientLogin) для аутентификации, а google возвращает три токена (SID, LSID, AUTH), но без HSID.Ошибка проверки подлинности API-интерфейса Google Reader

Когда я пытаюсь добавить новый канал http://www.google.com/reader/api/0/subscription/quickadd?ck=1290452912454&client=scroll с данными POST T = djj72HsnLS8293 & QuickAdd = blog.martindoms.com/корма/без HSID в Cookie, является ответом код статуса 401. С SID и HSID в Cookie все работает правильно.

Что такое и где я могу найти эту строку HSID?

Thaks для ваших ответов.

Мой код:

public void addNewFeed() throws IOException { 
     HttpPost requestPost = new HttpPost("http://www.google.com/reader/api/0/subscription/quickadd?ck=1290452912454&client=scroll"); 
     getSid();   
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
     DefaultHttpClient client = new DefaultHttpClient(); 
     requestPost.addHeader("Cookie", "SID=" + _sid + "; HSID=" + _hsid); 
     try { 
      nameValuePairs.add(new BasicNameValuePair("T", _token)); 
      nameValuePairs.add(new BasicNameValuePair("quickadd", "blog.martindoms.com/feed/")); 
      requestPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      HttpResponse response = client.execute(requestPost); 

      InputStream in = response.getEntity().getContent(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
      StringBuilder str = new StringBuilder(); 
      String line = null; 

      while ((line = reader.readLine()) != null) { 
       str.append(line + "\n"); 
      } 
      System.out.println(str.toString()); 
      in.close(); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

ответ

3

Похоже, вы могли бы использовать старую информацию в качестве ссылки. Теперь Google переключился на использование auth.

Вам нужно будет заменить getSid() функцией getAuth().

Затем эта линия

requestPost.addHeader("Cookie", "SID=" + _sid + "; HSID=" + _hsid); 

теперь должен быть этот

requestPost.addHeader("Authorization", "GoogleLogin auth=" + _auth); 
Смежные вопросы