2012-02-04 19 views
1

두 경우 모두 OAuth 1.0 및 2.0으로 Google의 API에 액세스하려고합니다. 'OAuth'다음에 액세스 토큰이있는 헤더의 Authorization 필드를 채워야합니다. . 나는 다음과 같은 방법을 시도했지만 Google은 인증 헤더 값에 문제가 있음을 알리는 오류를 던졌습니다. 나는 '시간'과 'additional_headers'헤더를 전달하여, 두 가지 방법을 사용하여 시도 파이썬 토네이도Google API를 사용하여 OAuth 2.0의 'Authorization'헤더 값을 전달하는 방법

additional_headers = { 
     "Authorization": "OAuth "+GoogleOAuth2Mixin.access_token, 
     "Accept-Encoding": None 
    } 
    h = httputil.HTTPHeaders() 
    h.parse_line("Authorization: OAuth "+GoogleOAuth2Mixin.access_token) 
    request = httpclient.HTTPRequest(self._USER_INFO_URL+"?access_token="+GoogleOAuth2Mixin.access_token, method="GET", headers=h) 
    self.httpclient_instance.fetch(
     request, 
     self.async_callback(callback) 
    ) 

를 사용하고 있지만,이 작동하지 않습니다. 정확한 방법은 무엇입니까?

+0

정확한 오류는 무엇입니까? { "오류": { "오류"[ { "도메인": "com.google.auth" "원인": "invalidAuthentication를" "메시지 – Drahkar

+0

이 에러가 난 참조] ":"유효하지 않은 토큰 " "locationType에 ":"헤더 " "위치 ":"인증 " } ] "코드 "401 "메시지 ":"유효하지 않은 토큰 " } } –

+0

성공적으로 확인한 후에이 오류가 표시됩니다. - https://www.googleapis.com/oauth2/v1/tokeninfo –

답변

0

UID로 계정 전자 메일 주소를 사용하고 기본적으로 인증 흐름 중에 userinfo 서비스를 호출하기 때문에 사용자 범위 목록에 "userinfo.email"을 포함시켜야합니다. 그렇지 않으면 인증 흐름이 발생하고 예외가 발생하고 토큰을 돌려주지 못한다.

OAuth 2.0 playground을 사용하는 경우 사용하려는 API와 함께 왼쪽 막대의 API를 선택하고 승인하려면 "Userinfo-Email"을 확인하십시오. 희망이 도움이됩니다.

7

동일한 문제가있었습니다. 'Bearer'가 접두사로 포함되어 있으면 작동합니다.

Authorization: Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 
+0

이 대답은 나를 위해 문제를 해결했습니다. 감사 –

관련 문제