Chrome Web Store Publish API 사용

개요

Chrome Web Store Publish API는 Chrome 웹 스토어에서 항목을 프로그래매틱 방식으로 생성, 업데이트, 게시하기 위한 REST 엔드포인트 집합을 제공합니다.

초기 설정

Chrome 웹 스토어에 대해 REST 호출을 시작하기 전에 Chrome Web Store API를 사용 설정하고 OAuth 동의 화면을 구성한 후 API 액세스 키를 검색해야 합니다. 다음 섹션에서는 이 프로세스를 안내합니다.

Chrome 웹 스토어 API 사용 설정

  1. Google Cloud 콘솔로 이동합니다.
  2. 새 프로젝트를 만들거나 기존 프로젝트를 선택합니다. Google 콘솔에서
새 프로젝트 만들기
  3. 검색창에 'Chrome Web Store API'를 입력합니다.
  4. Chrome Web Store API를 사용 설정합니다.

OAuth 동의 화면 구성

  1. OAuth 동의 화면으로 이동합니다.
  2. 외부를 선택한 다음 만들기를 선택합니다. OAuth 동의 화면 만들기
  3. 아래에 나열된 필수 앱 정보 입력란을 작성한 다음 저장하고 계속하기를 클릭합니다.
    • 앱 이름
    • 사용자 지원 이메일입니다.
    • 개발자 연락처 이메일
  4. 범위를 건너뜁니다. 저장, 계속을 차례로 클릭합니다.
  5. 내 이메일 주소를 테스트 사용자에 추가하고 저장, 계속을 차례로 클릭합니다.

액세스 키 가져오기

  1. 사용자 인증 정보로 이동합니다.
  2. 사용자 인증 정보 만들기를 클릭한 다음 OAuth 클라이언트 ID를 클릭합니다. 사용자 인증 정보 만들기
  3. 애플리케이션 유형으로 데스크톱 앱을 선택합니다.
  4. 이름을 입력한 후 만들기를 클릭합니다.

콘솔에 클라이언트 ID와 클라이언트 보안 비밀번호가 제공됩니다.

OAuth 애플리케이션 테스트

액세스 토큰을 검색하여 API를 사용할 수 있습니다. 예를 들어 브라우저에 다음 URL을 입력하고 $CLIENT_ID를 앱의 URL로 바꿉니다.

https://accounts.google.com/o/oauth2/auth?response_type=code&scope=https://www.googleapis.com/auth/chromewebstore&client_id=$CLIENT_ID&redirect_uri=urn:ietf:wg:oauth:2.0:oob

요청한 범위에 대한 권한을 수락하라는 메시지가 표시됩니다.

권한 요청 UI

동의를 클릭하고 코드를 복사합니다. 예를 들면 다음과 같습니다.

코드 복사용 UI

이 값을 사용하여 액세스 토큰을 요청합니다. 예를 들어 curl을 사용하면 다음 명령어를 실행하여 액세스 토큰을 가져올 수 있습니다 ($CLIENT_ID, $CLIENT_SECRET, $CODE 값을 위의 값으로 대체).

> curl "https://accounts.google.com/o/oauth2/token" -d \
"client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&code=$CODE&grant_type=authorization_code&redirect_uri=urn:ietf:wg:oauth:2.0:oob"

그러면 다음과 같은 결과가 반환됩니다.

{
  "access_token" : "ya29...",
  "expires_in" : 3600,
  "refresh_token" : "1/rwn...",
  "scope": "https://www.googleapis.com/auth/chromewebstore",
  "token_type" : "Bearer",
}

이제 access_token를 사용하여 API를 호출할 수 있습니다. 갱신 토큰을 사용하여 향후 액세스 토큰을 가져올 수도 있습니다. 토큰은 1시간 후에 만료됩니다.

API 사용

액세스 토큰을 갖게 되면 확장 프로그램에서 Chrome Web Store Publish API를 사용할 수 있습니다. 새 항목을 만들고, 기존 항목을 업데이트하고, 항목을 게시하기 위한 엔드포인트가 있습니다.

다음은 Publish API 사용 시 고려사항 목록입니다.

여기에서 Chrome Web Store Publish API에 대해 자세히 알아보세요.

패키지를 업로드하여 새 스토어 항목 만들기

Endpoint: https://www.googleapis.com/upload/chromewebstore/v1.1/items
Type: POST
Header Parameters: 
  $TOKEN: the access token
Body content: the package file to upload

명령줄에 다음 예를 입력합니다.

> curl \
-H "Authorization: Bearer $TOKEN"  \
-H "x-goog-api-version: 2" \
-X POST \
-T $FILE_NAME \
-v \
https://www.googleapis.com/upload/chromewebstore/v1.1/items

패키지를 업로드하여 기존 스토어 항목 업데이트

Endpoint: https://www.googleapis.com/upload/chromewebstore/v1.1/items/$ITEM_ID
Type: PUT
Header Parameters: 
  $TOKEN: the access token
Body content: the package file to upload

$ITEM_ID는 기존 웹 스토어 항목의 ID입니다.

> curl \
-H "Authorization: Bearer $TOKEN"  \
-H "x-goog-api-version: 2" \
-X PUT \
-T $FILE_NAME \
-v \
https://www.googleapis.com/upload/chromewebstore/v1.1/items/$ITEM_ID

항목을 공개적으로 게시

Endpoint: https://www.googleapis.com/chromewebstore/v1.1/items/$ITEM_ID/publish
Type: POST
Header Parameters: 
  $TOKEN: the access token
> curl \
-H "Authorization: Bearer $TOKEN"  \
-H "x-goog-api-version: 2" \
-H "Content-Length: 0" \
-X POST \
-v \
https://www.googleapis.com/chromewebstore/v1.1/items/$ITEM_ID/publish

신뢰할 수 있는 테스터를 대상으로 항목 게시

Endpoint: https://www.googleapis.com/chromewebstore/v1.1/items/$ITEM_ID/publish?publishTarget=trustedTesters
Type: POST
Header Parameters: 
  $TOKEN: the access token
> curl \
-H "Authorization: Bearer $TOKEN"  \
-H "x-goog-api-version: 2" \
-H "Content-Length: 0" \
-X POST \
-v \
https://www.googleapis.com/chromewebstore/v1.1/items/$ITEM_ID/publish?publishTarget=trustedTesters

항목의 업로드 상태 확인

Endpoint: https://www.googleapis.com/chromewebstore/v1.1/items/$ITEM_ID?projection=DRAFT
Type: GET
Header Parameters: 
  $TOKEN: the access token
curl \
-H "Authorization: Bearer $TOKEN"  \
-H "x-goog-api-version: 2" \
-H "Content-Length: 0" \
-H "Expect:" \
-X GET \
-v \
https://www.googleapis.com/chromewebstore/v1.1/items/$ITEM_ID?projection=DRAFT