質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

App Store

App Storeは、Apple社が運営する、iPhone、iPod touch、iPad向けアプリケーションソフトのダウンロードサービスです。携帯電話、Wi-Fiによる無線通信に対応しており、多くのアプリケーションをダウンロード、インストールすることができます。世界中の開発者によってアプリケーションが登録されており、有償のソフトもあればフリーソフトも多く登録されています。

Q&A

0回答

1891閲覧

Apple Store Connect APIを利用して売上概要レポートのユニット数を取得した結果、Noneが返ってくる

sugato

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

App Store

App Storeは、Apple社が運営する、iPhone、iPod touch、iPad向けアプリケーションソフトのダウンロードサービスです。携帯電話、Wi-Fiによる無線通信に対応しており、多くのアプリケーションをダウンロード、インストールすることができます。世界中の開発者によってアプリケーションが登録されており、有償のソフトもあればフリーソフトも多く登録されています。

0グッド

0クリップ

投稿2021/03/14 05:39

編集2021/03/14 06:35

前提・実現したいこと

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
上記が返ってくる、という記載があったので、もう少し検証してから解消できたのか?を記載しようと思います

ドキュメントの読み込みが甘い状態で質問してしまい、失礼しました

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問