갑자기 사용자가 액세스 권한을 부여 받았고 인증 코드가 리디렉션 URL로 전달 된 후 Oauth 프로세스 중에 오류가 발생했습니다. 몇 주 동안 동일한 코드를 사용해 왔지만 제대로 작동했습니다. 나는 내가 어떤 변화도하지 않았 음을 확신한다.Oauth 코드를 교환 할 때 오류가 발생했습니다.
Google 드라이브 API에 문제가 있습니까?
오류는 여기 파이썬 코드에서 여기에서 발생
credentials = flow.step2_exchange(authorization_code)
오류 메시지 :
FlowExchangeError: Invalid response 400.
구글의 예에서 복사로 전체 exchange_code 방법 :
def exchange_code(authorization_code):
"""Exchange an authorization code for OAuth 2.0 credentials.
Args:
authorization_code: Authorization code to exchange for OAuth 2.0
credentials.
Returns:
oauth2client.client.OAuth2Credentials instance.
Raises:
CodeExchangeException: an error occurred.
"""
logging.debug(authorization_code);
flow = flow_from_clientsecrets(CLIENTSECRETS_LOCATION, ' '.join(SCOPES))
flow.redirect_uri = REDIRECT_URI
try:
credentials = flow.step2_exchange(authorization_code)
return credentials
except FlowExchangeError, error:
logging.error('An error occurred: %s', error)
raise CodeExchangeException(None)
의 Oauth 운동장 사용 다음 오류 응답이 표시됩니다.
HTTP/1.1 400 Ok
Status: 400
Content-length: 37
X-xss-protection: 1; mode=block
X-content-type-options: nosniff
X-google-cache-control: remote-fetch
-content-encoding: gzip
Server: GSE
Via: HTTP/1.1 GWA
Pragma: no-cache
Cache-control: no-cache, no-store, max-age=0, must-revalidate
Date: Fri, 10 Aug 2012 03:23:54 GMT
X-frame-options: SAMEORIGIN
Content-type: application/json
Expires: Fri, 01 Jan 1990 00:00:00 GMT
{
"error" : "unauthorized_client"
}
지금 코드가 몇 주 동안 작동했을 때 왜 이런 일이 일어나기 시작하는지 아이디어가 있으십니까?
덕분에, 크리스
감사합니다. Claudio 님, 응답을 표시하도록 질문을 수정했습니다. OAuth 2.0 놀이터 – user1501783
요청을 추가 할 수 있습니까? 민감한 세부 사항을 자유롭게 삭제하십시오. –
위의 첫 번째 열에있는 실패한 행 이외의 실제 요청을 표시하는 방법을 모르겠습니다. credentials = flow.step2_exchange (authorization_code). 나는 'flow'가 수입품 중 하나에 정의되어 있다고 가정한다 : oauth2client.client import FlowExchangeError. oauth2client.client의 은 AccessTokenRefreshError를 가져옵니다. oauth2client.client 가져 오기 자격 증명 ... 실제 요청을 보내는 방법을 알려주실 수 있습니까? – user1501783