1
Google 웹 애플리케이션에 Google Plus API를 통합하려고합니다.OAuth token invalid_grant
Google에서 인증 할 수 있으며 코드가 있습니다. HttpClient
을 사용하여 access_token
을 시도 할 때 문제가 발생합니다. 여기
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost post = new HttpPost(
"https://accounts.google.com/o/oauth2/token");
post.addHeader("accept", "application/json");
post.addHeader("Content-Type", "application/x-www-form-urlencoded");
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("code", myCode));
nvps.add(new BasicNameValuePair("client_id",
"my_client_id"));
nvps.add(new BasicNameValuePair("redirect_uri",
"http://localhost:8080/test/gplus.do"));
nvps.add(new BasicNameValuePair("client_secret",
"my_client_secret"));
nvps.add(new BasicNameValuePair("grant_type", "authorization_code"));
post.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
HttpResponse response = httpClient.execute(post);
BufferedReader br = new BufferedReader(new InputStreamReader(
(response.getEntity().getContent())));
String output;
while ((output = br.readLine()) != null) {
res = res + output;
}
내가 여러 번 이전에 내 모의 응용 프로그램에서 토큰을 얻을 수 있었다, 그러나 지금은 알 수없는 이유로 실패 할 것으로 보인다. 내가 얻을 수있는 것은 error:invalid_grant
입니다. 왜 이런 일이 일어나는 걸까요?
예, 이전에 토큰을 받고있었습니다. 게다가, 실제로 코드를 얻지 만 토큰으로 교환하려고 할 때 문제가 나타납니다. 라이브러리를 사용하지 않겠지 만 문제가 지속되면 내가 제안한 라이브러리를 살펴 보겠습니다. – Dragos
그래서 첫 번째 호출 (/ authorize)이 작동하지만 두 번째 호출이 실패합니다. 1. 보이는 오류는 무엇입니까? 2. HttpClient로 디버그하고 서버에 보내려는 URL을보십시오. 그런 다음 REST 클라이언트를 사용하여 같은 URL을 시도하십시오. (우리는 문제를 찾아 내기 위해 노력합니다 ...) – OhadR
문제는 httpclient를 사용하여 요청을하지만 어쨌든 redirect_uri로 리다이렉트되어 다른 토큰을 요구하십시오. 이 때 오류가 발생합니다. 어떻게해야하는지 말해 줄 수 있어요? – Dragos