Проблема аутентификации API редактирования Google Reader - PullRequest
3 голосов
/ 23 ноября 2010

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

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

Что и где я могу найти эту строку 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();
        }
    }

1 Ответ

3 голосов
/ 07 декабря 2010

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

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

Тогда эта строка

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

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

requestPost.addHeader("Authorization", "GoogleLogin auth=" + _auth);
...