1

Apache HttpClient를 사용하는 Google Calendar API와 같은 인증이 필요한 Google API를 호출 할 수 있는지, Google 코드 또는 라이브러리가 없는지 알고 싶습니다. (그리고 코드가 필요합니다)Apache HttpClient를 사용하여 Google auth API를 호출하십시오.

이것은 내가 지금까지 가지고있는 코드이며, 인증 오류가 발생합니다. 사용자/암호로 무엇을 사용합니까?

HttpPost request = new HttpPost("https://www.googleapis.com/calendar/v3/users/me/calendarList/primary?key=mykey"); 
DefaultHttpClient client = new DefaultHttpClient(); 
client.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY), 
new UsernamePasswordCredentials(user, password)); 
HttpResponse response = client.execute(request); 

오류 :

"errors": [ 
    { 
    "domain": "global", 
    "reason": "required", 
    "message": "Login Required", 
    "locationType": "header", 
    "location": "Authorization" 
    } 
    ], 
    "code": 401, 
    "message": "Login Required" 
+0

참고 이것은 비 사용자 대화식 프로세스이므로 매시간 일정을 확인하고 만료되는 자격 증명이 필요하지 않습니다. – James

답변

1

당신은 로그인을 사용하지 않는 및 암호 당신은 당신이 토큰을 다음과 같이 뭔가를 호출 할 수있는 액세스 할 수 있습니다 일단 인증 할 필요가있다.

https://www.googleapis.com/calendar/v3/users/me/calendarList/primary?access_token= {tokenFromAuth}

당신은 어떤 HTTP를 POST를 할 수있는 언어와 HTTP GET으로 Google에 인증 할 수 있습니다. 여기에 구글 워크 플로우가 있습니다. http://www.daimto.com/google-3-legged-oauth2-flow/ Google 개발자 콘솔에서 Oauth2 자격증 명을 만들어야 시작할 수 있습니다. 그런 다음 사용자에게 데이터에 액세스하고 액세스를 요청할 권한을 요청하는 것입니다.

+0

사용자가 없으므로 봇입니까? 사용자가 사용자 대화 형 프로세스가 아닌 봇의 설정에 자격 증명을 입력해야합니다. – James

+0

클라이언트 로그인은 Google에서 더 이상 지원하지 않습니다. 사용자는 최소한 한 번 인증을 받아야 봇이 자동으로 실행될 수 있습니다. 그러나 일부 API 지원 서비스 계정에는 jwt 토큰을 만드는 것이 훨씬 어려워지고 사용자는 Google 개발자 콘솔에서 자신의 프로젝트를 만들고 액세스하려는 데이터를 미리 승인해야합니다. – DaImTo

+0

사용자 인증은 지난 1 시간 분의 토큰? – James

관련 문제