2010-11-23 11 views
3

認証GReader編集APIに問題があります。私は認証のためにHTTPS(https://www.google.com/accounts/ClientLogin)を行い、Googleは3つのトークン(SID、LSID、AUTH)を返すが、HSIDは返さない。Googleリーダー編集API認証の問題

私はクッキーでHSIDなしのPOSTデータT = djj72HsnLS8293 & quickadd = blog.martindoms.com /フィード/で新しいフィードhttp://www.google.com/reader/api/0/subscription/quickadd?ck=1290452912454&client=scrollを追加しようとすると、すべてが正常に動作するクッキーにSIDとHSIDで応答ステータスコード401です。

このHSID文字列はどこにありますか?

あなたの答えはタクです。

マイコード:あなたが参照として古い情報を使用している場合がありますように

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は現在認証を使用しています。

getSid()をgetAuth()関数に置き換える必要があります。

その後、このライン

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

は今、この

requestPost.addHeader("Authorization", "GoogleLogin auth=" + _auth); 
する必要があります