이 섹션에는 Google Play Developer API와 관련된 안내가 포함되어 있습니다. 자세한 내용은 전체 OAuth2 문서를 참고하세요.
초기 구성
Google Play Android Developer API에 대한 액세스는 OAuth 2.0 웹 서버 흐름을 사용하여 인증됩니다. API를 사용하려면 먼저 API 콘솔 프로젝트를 설정하고 클라이언트 ID를 만든 후 갱신 토큰을 생성해야 합니다.
API 콘솔 프로젝트 만들기
- API 콘솔로 이동하여 Google Play Console 계정으로 로그인합니다.
- 프로젝트 만들기를 선택합니다.
- 왼쪽 탐색 패널에서 서비스로 이동합니다.
- Google Play Android Developer API를 사용 설정합니다.
- 서비스 약관에 동의합니다.
- 왼쪽 탐색 패널에서 API 액세스로 이동합니다.
- OAuth 2.0 클라이언트 ID 만들기를 선택합니다.
- 첫 번째 페이지에는 제품 이름을 입력해야 하지만, 로고는 필수가 아닙니다. 최종 사용자에게는 제품 이름이 표시되지 않습니다.
- 두 번째 페이지에서는 웹 애플리케이션을 선택하고 리디렉션 URI 및 자바스크립트 원본을 설정합니다. 두 가지 설정 모두 나중에 변경할 수 있습니다.
- 클라이언트 ID 만들기를 선택합니다.
갱신 토큰 생성
- Google Play Console 계정으로 로그인한 상태에서 다음 URI로 이동합니다.
https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=...&client_id=...
- 메시지가 표시되면 액세스 허용을 선택합니다.
- 브라우저가
code
매개변수를 사용하여 리디렉션 URI로 리디렉션되며 이 매개변수는4/eWdxD7b-YSQ5CNNb-c2iI83KQx19.wp6198ti5Zc7dJ3UXOl0T3aRLxQmbwI
와 유사합니다. - 다음 필드 집합과 함께
https://accounts.google.com/o/oauth2/token
에 POST 요청을 전송하여 이 코드를 액세스 및 갱신 토큰 쌍으로 교환합니다.grant_type=authorization_code code=<the code from the previous step> client_id=<the client ID token created in the APIs Console> client_secret=<the client secret corresponding to the client ID> redirect_uri=<the URI registered with the client ID>
성공 응답에는 JSON 형식의 토큰이 포함됩니다.{ "access_token" : "ya29.ZStBkRnGyZ2mUYOLgls7QVBxOg82XhBCFo8UIT5gM", "token_type" : "Bearer", "expires_in" : 3600, "refresh_token" : "1/zaaHNytlC3SEBX7F2cfrHcqJEa3KoAHYeXES6nmho" }
API 액세스
클라이언트 사용자 인증 정보와 갱신 토큰을 생성하면 로그인 상태가 아니거나 사용자가 개입하지 않아도 서버에서 API에 액세스할 수 있습니다.
액세스 토큰 사용
서버는 요청의 Authorization
헤더에 액세스 토큰을 전달하여 API를 호출할 수 있습니다.
Authorization: Bearer oauth2-token
갱신 토큰 사용
각 액세스 토큰은 잠시 동안만 유효합니다. 현재 액세스 토큰이 만료되면 서버는 갱신 토큰을 사용하여 새 토큰을 가져와야 합니다. 이렇게 하려면 다음 필드 집합과 함께 https://accounts.google.com/o/oauth2/token
에 POST 요청을 보냅니다.
grant_type=refresh_token client_id=<the client ID token created in the APIs Console> client_secret=<the client secret corresponding to the client ID> refresh_token=<the refresh token from the previous step>
성공 응답에는 다른 액세스 토큰이 포함됩니다.
{ "access_token" : "ya29.AHES3ZQ_MbZCwac9TBWIbjW5ilJkXvLTeSl530Na2", "token_type" : "Bearer", "expires_in" : 3600, }
따라서 갱신 토큰을 사용하면 웹 서버에서 Google 계정에 로그인된 상태가 아니어도 API에 계속 액세스할 수 있습니다.