REST API 액세스 권한 받기

Google Pay API for Passes를 사용하면 Google Pay 앱에서 포인트 카드, 기프트 카드, 쿠폰, 이벤트 티켓, 항공 탑승권, 대중교통 이용권을 추가하고 관리할 수 있습니다. 시작하려면 프로젝트를 등록하고 Google Pay API for Passes 판매자 센터에 연결한 다음 OAuth 2.0용 웹 서비스를 설정하세요.

1. 애플리케이션 등록

Google API에 액세스하는 모든 애플리케이션은 API 콘솔을 통해 등록되어 있어야 합니다. 이 등록 과정을 마친 후에 생성되는 여러 값(클라이언트 ID, 이메일 주소, 비공개 키)은 오직 Google과 해당 애플리케이션에만 제공됩니다. 애플리케이션을 등록하려면 다음 안내를 따르세요.

  1. Google Pay API for Passes에 액세스할 수 있도록 가입합니다. 이미 가입했다면 이 단계를 건너뛸 수 있습니다.
  2. API 콘솔에 액세스합니다.
  3. 프로젝트 생성 버튼을 클릭하거나 페이지 상단에 있는 드롭다운 목록에서 프로젝트 만들기를 선택합니다. 그러면 새 프로젝트 페이지가 나타납니다.
  4. 프로젝트 이름을 입력합니다.
  5. 만들기를 클릭합니다. 구성이 완료되면 오른쪽 상단에 알림이 표시됩니다. 이 알림을 클릭하여 프로젝트의 홈페이지로 이동합니다.
  6. API 개요로 이동을 클릭합니다. 그런 다음 API 및 서비스 사용 설정을 클릭합니다.
  7. Google Pay Passes API를 검색하고 사용을 클릭합니다.
  8. 왼쪽 메뉴에서 사용자 인증 정보를 클릭합니다.
  9. 사용자 인증 정보 만들기 버튼을 클릭한 다음 서비스 계정 키를 선택합니다.
  10. 이 페이지에서 서비스 계정 키를 만듭니다. 여기서 서비스 계정도 만들어야 할 수 있습니다. 이 서비스 계정에는 추가 역할이 필요하지 않습니다. 키 유형으로 json을 선택한 다음 만들기를 클릭합니다.
  11. 계정 목록에 새 서비스 계정이 추가되고 비공개 키가 로컬 파일 시스템에 다운로드됩니다. 다운로드된 키는 이 키의 유일한 사본이므로 이 키 파일을 안전한 위치에 보관해야 합니다. 나중에 이 키를 사용하게 됩니다.
  12. 키의 서비스 계정 이메일을 복사합니다. 이메일은 사용자 인증 정보 탭에서 서비스 계정 관리를 클릭하여 확인할 수 있습니다. 나중에 이 주소를 사용하게 됩니다.

경고: 개발자 및 프로덕션 환경을 위해 비공개 키를 안전하게 보관하고 관리해야 합니다. Google은 공개 키의 사본만 보관합니다. 서비스 계정 비공개 키 관리에 대한 자세한 내용은 여기에서 볼 수 있습니다.

2. Google Pay API for Passes 계정에 서비스 계정 연결

Google Pay API for Passes 계정은 Google 담당자가 만들어 놓은 상태여야 합니다. Google Pay API for Passes 판매자 센터는 판매자 계정과 모든 관련 클래스 및 객체를 관리하는 데 사용할 수 있는 웹사이트입니다. Google Pay API for Passes 판매자 센터에 서비스 계정을 연결하려면 다음 안내를 따르세요.

  1. Google Pay API for Passes 판매자 센터에 액세스합니다.
  2. 목록에서 계정을 선택합니다. 그러면 계정 정보 페이지가 표시됩니다.
  3. 공유를 클릭합니다. 공유 설정이 표시됩니다.
  4. 애플리케이션 등록 섹션에서 만든 키의 서비스 계정 이메일(@<your_domain>.iam.gserviceaccount.com으로 끝남)을 복사하여 Invite people 필드에 붙여넣습니다.
  5. 권한 드롭다운이 수정 가능으로 설정되어 있는지 확인한 후 보내기를 클릭합니다. 이제 서비스 계정이 Google Pay API for Passes 계정과 연결되었고 API에 대해 REST 호출을 실행할 수 있습니다.

3. 서버 간 애플리케이션에 OAuth 2.0 사용

Google OAuth 2.0 승인 서버는 웹 애플리케이션과 Google Cloud Storage 간 상호작용과 같은 서버 간 상호작용을 지원합니다. 요청 애플리케이션은 최종 사용자의 개입 없이 API에 액세스하기 위해 ID를 증명해야 합니다.

API 요청을 승인하려면 액세스 토큰을 제공받아야 합니다. Google은 클라이언트 라이브러리를 사용해 절차를 단순화할 것을 적극 권장합니다.

라이브러리를 사용하여 서비스 계정 사용자 인증 정보 만들기

다음 탭에서는 서비스 계정 사용자 인증 정보를 만들기 위한 언어별 코드 예를 보여줍니다.

자바

GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
  .setJsonFactory(jsonFactory)
  .setServiceAccountId("ServiceAccountEmail@developer.gserviceaccount.com")
  .setServiceAccountScopes("https://www.googleapis.com/auth/wallet_object.issuer")
  .setServiceAccountPrivateKey(new File("/example/path/to/privatekey.json"))
  .build();

PHP

$client = new Google_Client();
$client->setApplicationName('Wallet Objects App');
$client->setScopes(array('https://www.googleapis.com/auth/wallet_object.issuer'));
$client->setAuthConfigFile('/example/path/to/privatekey.json');

Python

file_path = '/example/path/to/privatekey.json'
credentials = ServiceAccountCredentials.from_json_keyfile_name(
    file_path,
    'https://www.googleapis.com/auth/wallet_object.issuer')

http = httplib2.Http()
http = credentials.authorize(http)

클래스 삽입과 같은 REST API 명령어를 실행한 결과로 나타나는 사용자 인증 정보를 사용합니다.

수동으로 액세스 토큰 받기

액세스 토큰을 수동으로 받으려면 서버 간 애플리케이션에 OAuth 2.0 사용을 참조하세요. JSON 웹 토큰(JWT)을 만들어 비공개 키로 서명한 다음 적절한 형식의 액세스 토큰 요청을 구성해야 합니다. 그런 다음 애플리케이션에서 토큰 요청을 Google OAuth 2.0 승인 서버로 전송하면 액세스 토큰이 반환됩니다. 애플리케이션은 액세스 토큰을 받은 후에만 API에 액세스할 수 있습니다. 액세스 토큰이 만료되면 애플리케이션에서 이 프로세스를 반복해야 합니다.

  • JWT 클레임 집합의 iss 필드는 애플리케이션 등록 섹션에서 설명한 대로 Google API 콘솔에서 생성된 서비스 계정 이메일 주소를 사용합니다.
  • JWT 클레임 집합의 scope 필드는 애플리케이션이 요청하는 공백으로 구분된 권한 목록입니다.
  • 프로덕션 애플리케이션의 유효한 범위는 https://www.googleapis.com/auth/wallet_object.issuer입니다.

이 단계를 완료한 다음에는 Google Pay에 패스 저장을 참조해 고객이 웹사이트에서 포인트 카드, 기프트 카드, 쿠폰, 이벤트 티켓, 항공 탑승권, 대중교통 이용권을 Google Pay에 쉽게 저장하는 방법을 알아볼 수 있습니다.