質問編集履歴
3
コードとエラー内容を修正しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,46 +5,17 @@
|
|
5
5
|
上手く動作しません。
|
6
6
|
|
7
7
|
### 発生している問題・エラーメッセージ
|
8
|
-
|
9
8
|
Traceback (most recent call last):
|
10
|
-
File "C:\Users\nakatsus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\jwt\algorithms.py", line 349, in prepare_key
|
11
|
-
key = load_pem_public_key(key, backend=default_backend())
|
12
|
-
File "C:\Users\nakatsus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cryptography\hazmat\primitives\serialization\base.py", line 20, in load_pem_public_key
|
13
|
-
return backend.load_pem_public_key(data)
|
14
|
-
File "C:\Users\nakatsus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cryptography\hazmat\backends\openssl\backend.py", line 1071, in load_pem_public_key
|
15
|
-
self._handle_key_loading_error()
|
16
|
-
File "C:\Users\nakatsus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cryptography\hazmat\backends\openssl\backend.py", line 1329, in _handle_key_loading_error
|
17
|
-
raise ValueError("Could not deserialize key data.")
|
18
|
-
ValueError: Could not deserialize key data.
|
19
|
-
|
20
|
-
During handling of the above exception, another exception occurred:
|
21
|
-
|
22
|
-
Traceback (most recent call last):
|
23
|
-
File "c:/Users/nakatsus/Documents/AppleAPI/GetReport.py", line
|
9
|
+
File "c:/Users/nakatsus/Documents/AppleAPI/GetReport.py", line 90, in <module>
|
24
10
|
get_apple_reports(request)
|
25
11
|
File "c:/Users/nakatsus/Documents/AppleAPI/GetReport.py", line 11, in get_apple_reports
|
26
12
|
token = __get_apple_store_connect_api_token()
|
27
|
-
File "c:/Users/nakatsus/Documents/AppleAPI/GetReport.py", line
|
13
|
+
File "c:/Users/nakatsus/Documents/AppleAPI/GetReport.py", line 33, in __get_apple_store_connect_api_token
|
28
|
-
headers=headers).decode()
|
29
|
-
File "C:\Users\nakatsus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\jwt\api_jwt.py", line 65, in encode
|
30
|
-
json_payload, key, algorithm, headers, json_encoder
|
31
|
-
File "C:\Users\nakatsus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\jwt\api_jws.py", line 113, in encode
|
32
|
-
key = alg_obj.prepare_key(key)
|
33
|
-
File "C:\Users\nakatsus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\jwt\algorithms.py", line 351, in prepare_key
|
34
|
-
|
14
|
+
exp = int(time.mktime((datetime.now() + timedelta(minutes=20)).timetuple()))
|
35
|
-
File "C:\Users\nakatsus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cryptography\hazmat\primitives\serialization\base.py", line 16, in load_pem_private_key
|
36
|
-
return backend.load_pem_private_key(data, password)
|
37
|
-
File "C:\Users\nakatsus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cryptography\hazmat\backends\openssl\backend.py", line 1045, in load_pem_private_key
|
38
|
-
password,
|
39
|
-
File "C:\Users\nakatsus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cryptography\hazmat\backends\openssl\backend.py", line 1271, in _load_key
|
40
|
-
self._handle_key_loading_error()
|
41
|
-
File "C:\Users\nakatsus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cryptography\hazmat\backends\openssl\backend.py", line 1329, in _handle_key_loading_error
|
42
|
-
raise ValueError("Could not deserialize key data.")
|
43
|
-
|
15
|
+
NameError: name 'time' is not defined
|
44
|
-
|
45
16
|
### 該当のソースコード
|
46
17
|
|
47
|
-
```
|
18
|
+
```python3
|
48
19
|
import json
|
49
20
|
import jwt
|
50
21
|
import requests
|
@@ -68,24 +39,31 @@
|
|
68
39
|
|
69
40
|
def __get_apple_store_connect_api_token():
|
70
41
|
|
42
|
+
ALGORITHM = 'ES256'
|
43
|
+
|
44
|
+
APP_STORE_KEY_ID = 'XXXXXXXXXX'
|
45
|
+
ISSUER_ID = 'XXXXX-XXXXXX-XXXXX-XXXXX'
|
46
|
+
STORE_AUTH_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.p8'
|
47
|
+
|
48
|
+
secret = ""
|
49
|
+
with open(STORE_AUTH_KEY,'r') as f:
|
50
|
+
secret = f.read()
|
71
|
-
|
51
|
+
exp = int(time.mktime((datetime.now() + timedelta(minutes=20)).timetuple()))
|
52
|
+
token = jwt.encode(
|
53
|
+
{
|
54
|
+
'iss': ISSUER_ID,
|
55
|
+
"exp": exp,
|
72
|
-
|
56
|
+
"aud": "appstoreconnect-v1"
|
57
|
+
},
|
58
|
+
secret,
|
59
|
+
algorithm=ALGORITHM,
|
60
|
+
headers={
|
61
|
+
'alg': ALGORITHM,
|
62
|
+
'kid': APP_STORE_KEY_ID,
|
63
|
+
"typ": "JWT"
|
64
|
+
}
|
65
|
+
)
|
73
66
|
|
74
|
-
headers = {"alg": "ES256",
|
75
|
-
"kid": 'キーID',
|
76
|
-
"typ": "JWT"}
|
77
|
-
payload = {"iss": 'ISS',
|
78
|
-
"exp": now_ut,
|
79
|
-
"aud": "appstoreconnect-v1"}
|
80
|
-
|
81
|
-
private_key = 'プライベートキー'
|
82
|
-
private_key = re.sub(r'\n',r'\n',private_key)
|
83
|
-
|
84
|
-
token = jwt.encode(payload,
|
85
|
-
private_key,
|
86
|
-
algorithm='ES256',
|
87
|
-
headers=headers).decode()
|
88
|
-
|
89
67
|
logging.debug('Apple Store Connect API token: ' + token)
|
90
68
|
|
91
69
|
return token
|
@@ -128,7 +106,6 @@
|
|
128
106
|
if __name__ == '__main__':
|
129
107
|
request = {"args": {"date_str": None}}
|
130
108
|
get_apple_reports(request)
|
131
|
-
|
132
109
|
```
|
133
110
|
### 試したこと
|
134
111
|
|
2
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
```ここに言語を入力
|
2
|
-
コード
|
3
|
-
|
1
|
+
### 前提・実現したいこと
|
4
2
|
|
5
3
|
pythonにてApp Store Connectからレポートを取得したいのですが、
|
6
4
|
参考になるサイトが少なく、拾ってきたコードを繋げて実行しているのですが、
|
1
コードにインデントを挿入しました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
App Store ConnectからAPIを使ってレポートを取得したい
|
body
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
+
```ここに言語を入力
|
2
|
+
コード
|
1
|
-
### 前提・実現したいこと
|
3
|
+
```### 前提・実現したいこと
|
2
4
|
|
3
5
|
pythonにてApp Store Connectからレポートを取得したいのですが、
|
4
6
|
参考になるサイトが少なく、拾ってきたコードを繋げて実行しているのですが、
|
@@ -44,6 +46,7 @@
|
|
44
46
|
|
45
47
|
### 該当のソースコード
|
46
48
|
|
49
|
+
```ここに言語を入力
|
47
50
|
import json
|
48
51
|
import jwt
|
49
52
|
import requests
|
@@ -128,6 +131,7 @@
|
|
128
131
|
request = {"args": {"date_str": None}}
|
129
132
|
get_apple_reports(request)
|
130
133
|
|
134
|
+
```
|
131
135
|
### 試したこと
|
132
136
|
|
133
137
|
ここに問題に対して試したことを記載してください。
|