質問編集履歴
1
コードの説明の追加、試したことに対してのレスポンスの追加、参考資料の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -42,6 +42,8 @@
|
|
42
42
|
|
43
43
|
ID等は変更して記載しております。
|
44
44
|
|
45
|
+
require部
|
46
|
+
|
45
47
|
```js
|
46
48
|
|
47
49
|
const axios = require('axios')
|
@@ -52,7 +54,11 @@
|
|
52
54
|
|
53
55
|
const cryptoJs = require('crypto-js')
|
54
56
|
|
55
|
-
|
57
|
+
```
|
58
|
+
|
59
|
+
アクセストークンを取得する部分です。
|
60
|
+
|
61
|
+
```js
|
56
62
|
|
57
63
|
// AccessTokenの取得
|
58
64
|
|
@@ -90,7 +96,37 @@
|
|
90
96
|
|
91
97
|
}
|
92
98
|
|
93
|
-
|
99
|
+
```
|
100
|
+
|
101
|
+
この部分は成功しており、下記のレスポンスを取得できています。
|
102
|
+
|
103
|
+
```json
|
104
|
+
|
105
|
+
{ access_token:
|
106
|
+
|
107
|
+
'Atza|hogehoge',
|
108
|
+
|
109
|
+
refresh_token:
|
110
|
+
|
111
|
+
'Atzr|fugafuga',
|
112
|
+
|
113
|
+
token_type: 'bearer',
|
114
|
+
|
115
|
+
expires_in: 3600 }
|
116
|
+
|
117
|
+
```
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
署名キーを取得する部分です。
|
122
|
+
|
123
|
+
この部分は下記のページをもとに作成しています。
|
124
|
+
|
125
|
+
[署名バージョン 4 の署名キーを取得する方法の例](https://docs.aws.amazon.com/ja_jp/general/latest/gr/signature-v4-examples.html#signature-v4-examples-javascript)
|
126
|
+
|
127
|
+
を使用しています。
|
128
|
+
|
129
|
+
```js
|
94
130
|
|
95
131
|
const accessKey = 'IAM_AccessKey'
|
96
132
|
|
@@ -116,7 +152,19 @@
|
|
116
152
|
|
117
153
|
}
|
118
154
|
|
119
|
-
|
155
|
+
```
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
実際にSP-APIにリクエストを送っている部分です。
|
160
|
+
|
161
|
+
`axios.get(url, { params: query, headers: headers })`
|
162
|
+
|
163
|
+
の部分までは下記の公式の手順に則って署名処理及びリクエストヘッダの作成を行い、署名は成功しました。
|
164
|
+
|
165
|
+
[署名バージョン 4 を使用した AWS リクエストへの署名](https://docs.aws.amazon.com/ja_jp/general/latest/gr/sigv4_signing.html)
|
166
|
+
|
167
|
+
```js
|
120
168
|
|
121
169
|
const order = (token) => {
|
122
170
|
|
@@ -172,7 +220,7 @@
|
|
172
220
|
|
173
221
|
'x-amz-access-token': token,
|
174
222
|
|
175
|
-
'X-Amz-da
|
223
|
+
'X-Amz-date': isoDate,
|
176
224
|
|
177
225
|
'Authorization': `AWS4-HMAC-SHA256 Credential=${accessKey}/${credentialScope}, SignedHeaders=${signedHeaders},Signature=${signature}`
|
178
226
|
|
@@ -220,10 +268,14 @@
|
|
220
268
|
|
221
269
|
|
222
270
|
|
223
|
-
アプリケーションのIAM ARNをuser,roleそれぞれに設定し試しました。
|
271
|
+
* アプリケーションのIAM ARNをuser,roleそれぞれに設定し試しました。
|
224
272
|
|
225
273
|
下記のポリシーをアタッチしています。
|
226
274
|
|
275
|
+
これは下記のリンクを参考に行いましたが、レスポンスは変わりませんでした。
|
276
|
+
|
277
|
+
[Access to requested resource is denied 403 SP-API AMAZON - C#](https://stackoverflow.com/questions/64560163/access-to-requested-resource-is-denied-403-sp-api-amazon-c-sharp)
|
278
|
+
|
227
279
|
```json
|
228
280
|
|
229
281
|
{
|
@@ -250,6 +302,98 @@
|
|
250
302
|
|
251
303
|
|
252
304
|
|
305
|
+
* ヘッダーの修正
|
306
|
+
|
307
|
+
ヘッダー設定部分を下記のように変更しました。
|
308
|
+
|
309
|
+
旧
|
310
|
+
|
311
|
+
```js
|
312
|
+
|
313
|
+
const headers = {
|
314
|
+
|
315
|
+
'Content-Type': `${contentType}; charset=${charset}`,
|
316
|
+
|
317
|
+
'Host': host,
|
318
|
+
|
319
|
+
'User-Agent': userAgent,
|
320
|
+
|
321
|
+
'X-Amz-Access-Token': token,
|
322
|
+
|
323
|
+
'X-Amz-date': isoDate,
|
324
|
+
|
325
|
+
'Authorization': `AWS4-HMAC-SHA256 Credential=${accessKey}/${credentialScope}, SignedHeaders=${signedHeaders},Signature=${signature}`
|
326
|
+
|
327
|
+
}
|
328
|
+
|
329
|
+
```
|
330
|
+
|
331
|
+
現
|
332
|
+
|
333
|
+
```js
|
334
|
+
|
335
|
+
const headers = {
|
336
|
+
|
337
|
+
'Content-Type': `${contentType}; charset=${charset}`,
|
338
|
+
|
339
|
+
'Host': host,
|
340
|
+
|
341
|
+
'User-Agent': userAgent,
|
342
|
+
|
343
|
+
'x-amz-access-token': token,
|
344
|
+
|
345
|
+
'X-Amz-date': isoDate,
|
346
|
+
|
347
|
+
'Authorization': `AWS4-HMAC-SHA256 Credential=${accessKey}/${credentialScope}, SignedHeaders=${signedHeaders},Signature=${signature}`
|
348
|
+
|
349
|
+
}
|
350
|
+
|
351
|
+
```
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
X-Amz-Access-Tokenをすべて小文字に変更しました。
|
356
|
+
|
357
|
+
これは下記のIssueを参考に変更しました。
|
358
|
+
|
359
|
+
[Access token is missing in the request header. #292](https://github.com/amzn/selling-partner-api-docs/issues/292)
|
360
|
+
|
361
|
+
これにより、レスポンスは下記のように変わりました。
|
362
|
+
|
363
|
+
旧
|
364
|
+
|
365
|
+
```json
|
366
|
+
|
367
|
+
{ errors:
|
368
|
+
|
369
|
+
[ { message: 'Access to requested resource is denied.',
|
370
|
+
|
371
|
+
code: 'Unauthorized',
|
372
|
+
|
373
|
+
details: 'Access token is missing in the request header.' } ] }
|
374
|
+
|
375
|
+
|
376
|
+
|
377
|
+
```
|
378
|
+
|
379
|
+
現
|
380
|
+
|
381
|
+
```json
|
382
|
+
|
383
|
+
{ errors:
|
384
|
+
|
385
|
+
[ { message: 'Access to requested resource is denied.',
|
386
|
+
|
387
|
+
code: 'Unauthorized',
|
388
|
+
|
389
|
+
details: '' } ] }
|
390
|
+
|
391
|
+
|
392
|
+
|
393
|
+
```
|
394
|
+
|
395
|
+
|
396
|
+
|
253
397
|
### 補足情報(FW/ツールのバージョンなど)
|
254
398
|
|
255
399
|
|
@@ -265,3 +409,5 @@
|
|
265
409
|
6.14.4
|
266
410
|
|
267
411
|
```
|
412
|
+
|
413
|
+
[SP-API公式ドキュメント](https://github.com/amzn/selling-partner-api-docs/blob/main/guides/ja-JP/developer-guide/SellingPartnerApiDeveloperGuide(%E6%97%A5%E6%9C%AC%E8%AA%9E).md#step-6-register-your-application)
|