승인

이 섹션에는 Google Play Developer API와 관련된 안내가 포함되어 있습니다. 자세한 내용은 전체 OAuth2 문서를 참고하세요.

초기 구성

Google Play Android Developer API에 대한 액세스는 OAuth 2.0 웹 서버 흐름을 사용하여 인증됩니다. API를 사용하려면 먼저 API 콘솔 프로젝트를 설정하고 클라이언트 ID를 만든 후 갱신 토큰을 생성해야 합니다.

API 콘솔 프로젝트 만들기

  1. API 콘솔로 이동하여 Google Play Console 계정으로 로그인합니다.
  2. 프로젝트 만들기를 선택합니다.
  3. 왼쪽 탐색 패널에서 서비스로 이동합니다.
  4. Google Play Android Developer API를 사용 설정합니다.
  5. 서비스 약관에 동의합니다.
  6. 왼쪽 탐색 패널에서 API 액세스로 이동합니다.
  7. OAuth 2.0 클라이언트 ID 만들기를 선택합니다.
    • 첫 번째 페이지에는 제품 이름을 입력해야 하지만, 로고는 필수가 아닙니다. 최종 사용자에게는 제품 이름이 표시되지 않습니다.
    • 두 번째 페이지에서는 웹 애플리케이션을 선택하고 리디렉션 URI 및 자바스크립트 원본을 설정합니다. 두 가지 설정 모두 나중에 변경할 수 있습니다.
  8. 클라이언트 ID 만들기를 선택합니다.

갱신 토큰 생성

  1. 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=...
  2. 메시지가 표시되면 액세스 허용을 선택합니다.
  3. 브라우저가 code 매개변수를 사용하여 리디렉션 URI로 리디렉션되며 이 매개변수는 4/eWdxD7b-YSQ5CNNb-c2iI83KQx19.wp6198ti5Zc7dJ3UXOl0T3aRLxQmbwI와 유사합니다.
  4. 다음 필드 집합과 함께 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에 계속 액세스할 수 있습니다.