開発者コンソール

Pythonの例


Pythonの例

アプリ申請APIを介して行うさまざまなタスクで使用するPythonコードについて、以下に例を示します。

アクセストークンの取得

クライアントIDとクライアントシークレットを使用して認可トークンを取得し、各APIリクエストのヘッダーに追加します。以下のPythonの例を使用して、認可トークンを取得し、同トークンを利用してAuthorizationヘッダーを作成する方法を紹介します。

#  指定する必要がある値
client_id = "<クライアントID>"
client_secret = "<クライアントシークレット>"
app_id = "<アプリID>"

BASE_URL = 'https://developer.amazon.com/api/appstore'

scope = "appstore::apps:readwrite"
grant_type = "client_credentials"
data = {
    "grant_type": grant_type,
    "client_id": client_id,
    "client_secret": client_secret,
    "scope": scope
}
amazon_auth_url = "https://api.amazon.com/auth/o2/token"
auth_response = requests.post(amazon_auth_url, data=data)

# 認可レスポンスからトークンを読み取る
auth_response_json = auth_response.json()
auth_token = auth_response_json["access_token"]

auth_token_header_value = "Bearer %s" % auth_token

auth_token_header = {"Authorization": auth_token_header_value}

Editの新規作成

以下のPythonの例を使用して、Editを作成する方法を紹介します。

create_edit_path = '/v1/applications/%s/edits' % app_id
create_edit_url = BASE_URL + create_edit_path
create_edit_response = requests.post(create_edit_url, headers=headers)
current_edit = create_edit_response.json()

edit_id = current_edit['id']

オープンなEditの取得

以下の例を使用して、オープンなEditのIDを取得する方法を紹介します。

get_edits_path = '/v1/applications/%s/edits' % app_id
get_edits_url = BASE_URL + get_edits_path
get_edits_response = requests.get(get_edits_url, headers=headers)
current_edit = get_edits_response.json()

edit_id = current_edit['id']

既存APKの置換

以下の例を使用して、最初のAPKファイルをローカル環境のファイルと置き換える方法を紹介します。

## APKの現在のリストを取得する
get_apks_path = '/v1/applications/%s/edits/%s/apks' % (app_id, edit_id)
get_apks_url = BASE_URL + get_apks_path
apks = requests.get(get_apks_url, headers=headers)

firstAPK = apks[0]
apk_id = firstAPK['id']
replace_apk_path = '/v1/applications/%s/edits/%s/apks/%s/replace' % (app_id, edit_id, apk_id)

## ローカル環境でAPKファイルを開く
local_apk = open(local_apk_path, 'rb').read()

replace_apk_url = BASE_URL + replace_apk_path
all_headers = {
    'Content-Type': 'application/vnd.android.package-archive',
    'If-Match': etag
}
all_headers.update(headers)
replace_apk_response = requests.put(replace_apk_url, headers=all_headers, data=local_apk)

新しいAPKの追加

以下の例を使用して、新しいAPKファイルをアップロードする方法を紹介します。

add_apk_path = '/v1/applications/%s/edits/%s/apks/upload' % (app_id, edit_id)
add_apk_url = BASE_URL + add_apk_path
local_apk = open(apk_location, 'rb').read()
all_headers = {
    'Content-Type': 'application/vnd.android.package-archive'
}
all_headers.update(headers)
add_apk_response = requests.post(add_apk_url, headers=all_headers, data=local_apk)
response = add_apk_response.json()

リスティングの更新

以下の例を使用して、1つのロケールに対するストアリスティングを更新する方法を紹介します。

listing_headers = headers.copy()
listing_headers.update({
    'Content-Type': 'application/json'
})
listings_etag, current_listing_json = get_current_listing(app_id, edit_id, language, listing_headers)

edit_body = current_listing_json.copy()
edit_body.update(edit_listing_body)
edit_listing_headers = listing_headers.copy()
edit_listing_headers.update({
    'If-Match': listings_etag
})

edit_listing_response = update_listing(app_id, edit_id, language, edit_body, edit_listing_headers)