Pythonの例
Pythonの例
アプリ申請APIを介して行うさまざまなタスクで使用するPythonコードについて、以下に例を示します。
ヒント: APIのリクエストとレスポンスの詳細については、アプリ申請APIのリファレンスを参照してください。
アクセストークンの取得
クライアント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)
Last updated: 2023年1月26日