前提・実現したいこと
Apple Store Connect APIを利用して、売上概要レポートのユニット数をpythonで取得したいです
https://developer.apple.com/documentation/appstoreconnectapi/download_sales_and_trends_reports
レスポンスとして200が返ってきているのですが、中身を変換するとNoneになるのはデータが無いからなのか、変換によるものなのか?が切り分けできていない状態です
Appleに質問したところ、ハードもしくはソフトウェア開発以外の内容には回答できない、という返答を貰ってしまいました
そこでお門違いかもですが、ここで質問させてもらった次第です
参考ドキュメント
こちらではusersのデータを取得している部分を、売上概要レポートに置き換えています
https://marunouchi-tech.i-studio.co.jp/5356/
試したこと
他のreportTypeではデータが取得できるのか?も検証しましたが、同様のエラーが返ってきました
参考にさせてもらったサイトではJSON形式で取得しているのですが、そのまま利用させてもらったところ以下のエラーが返ってきました。
そこで、apparent_encoding を利用させてもらっています
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
環境
Windows 10
python 3.8.4
該当のソースコード
python
1import json 2import jwt 3import time 4import requests 5from datetime import datetime, timedelta 6# Signature method is fixed at ES256 7ALGORITHM = 'ES256' 8# Please list your own key 9APP_STORE_KEY_ID = 'XXXXXXX' 10ISSUER_ID = 'XXXXXXX-XXXXXXX' 11STORE_AUTH_KEY = 'XXXXXXX.p8' 12 13secret = "" 14with open(STORE_AUTH_KEY,'r') as f: 15 secret = f.read() 16# Apple's stipulated token expiration date is 20 minutes 17exp = int(time.mktime((datetime.now() + timedelta(minutes=20)).timetuple())) 18token = jwt.encode( 19 { 20 'iss': ISSUER_ID, 21 "exp": exp, 22 "aud": "appstoreconnect-v1" # aud is fixed at appstoreconnect-v1 23 }, 24 secret, 25 algorithm=ALGORITHM, 26 headers={ 27 'alg': ALGORITHM, 28 'kid': APP_STORE_KEY_ID, 29 "typ": "JWT" 30 } 31) 32 33url = 'https://api.appstoreconnect.apple.com/v1/salesReports?filter[vendorNumber]=My_vendorNumber&filter[reportType]=SALES&filter[reportSubType]=SUMMARY&filter[frequency]=DAILY&filter[reportDate]=2021-03-01&filter[version]=1_0' 34hed = {'Authorization': 'Bearer {}'.format(token.decode('ascii'))} 35data = {} 36response = requests.get(url, headers=hed) 37# data = response.json() 38print(response.status_code) 39response = response.apparent_encoding # I got a json conversion error, so I added this line 40print(response) 41# print(json.dumps(data, ensure_ascii=False, indent=4))
実行結果
$ python get_unit.py 200 None
分かっていないこと
売上概要レポート自体は、添付した画像のページからダウンロードできる結果だと認識しています
(会社のアカウントであるため、IDなどは削除したものをアップロードさせてもらっています)
こちらの中身には、問題なくデータが含まれていることは確認済みです
何か試してみた方が良さそうなこと、そもそもの私の認識が間違っている箇所などあれば指摘いただけたらと思います
売上概要レポートのページにpythonではなく、Reporter tokenを利用しても数値が取れることがかいてあります
個人的にJavaに全く慣れていないこと
またデータを取得後にBQへのテーブル作成するため、できればpythonで記述したく質問をさせてもらった次第です
よろしくお願いします。
追記
https://developer.apple.com/documentation/appstoreconnectapi/download_sales_and_trends_reports
Content-Type: gzip
上記が返ってくる、という記載があったので、もう少し検証してから解消できたのか?を記載しようと思います
ドキュメントの読み込みが甘い状態で質問してしまい、失礼しました
あなたの回答
tips
プレビュー