Java: Google+ OAuth Неверный заголовок - PullRequest
3 голосов
/ 02 февраля 2012

Я пытаюсь получить информацию о пользователе Google+, используя

https://www.googleapis.com/oauth2/v1/userinfo?alt=json

Я передаю полученный ранее токен доступа:

URL googleURL = new URL("https://www.googleapis.com/oauth2/v1/userinfo?alt=json");

            URLConnection googleConn = googleURL.openConnection();
            googleConn.setAllowUserInteraction(false);   
            googleConn.setDoOutput(true);

            **googleConn.setRequestProperty("Authorization", "Bearer "+accessToken);**

            BufferedReader rd = new BufferedReader(new InputStreamReader(googleConn.getInputStream()));

            String result = "";
            while(rd.ready())
                result += rd.readLine();
            rd.close();

Но мне выдается код ошибки HTTP 401 (неверные заголовки).

Это правильный способ передачи токена доступа в заголовке?

googleConn.setRequestProperty("Authorization", "Bearer "+accessToken);

1 Ответ

1 голос
/ 12 апреля 2012

Чтобы получить доступ к информации профиля Google+, вы действительно хотите использовать API получения людей: https://www.googleapis.com/plus/v1/people/me Вы можете проверить справочные документы или поиграть с ним в API Explorer. .

Кроме того, вы кодируете на гораздо более низком уровне, чем нужно. Хотя вы можете использовать конечную точку REST напрямую, все будет намного проще, если вы используете официальную клиентскую библиотеку . Если вы пойдете по этому пути, есть даже Google + стартовый проект для Java .

Если вы хотите продолжить низкий уровень, вы должны передать токен доступа с префиксом OAuth вместо Bearer. Полученные заголовки HTTP-запроса будут выглядеть примерно так:

GET https://www.googleapis.com/plus/v1/people/102817283354809142195

Authorization:  OAuth ya29.BHES61Rxr4Cq-Elcfpvx_2oWC443fMOEQV9iS5-M7ZjJ6xk
...