Guia de implementação
Importar modelos do repositório no POSTMAN
O primeiro passo para importar modelos de referência da SP-API no Postman é encontrá-los!
Os modelos da SP-API se encontram no seguinte link:
https://github.com/amzn/selling-partner-api-models/tree/main/models
Assim que você escolher a modal que você deseja utilizar, você pode importá-la, selecionando o link 'raw' do modelo.
Copie o link e salve-o. Você realizará a importação deste modelo no Postman.
No Postman, realize os seguintes passos:
- Clique em 'Import'
- Selecione 'Link'
- Cole o link 'Raw' do modelo anteriormente selecionado
Access Token
Assim que for obtido o código de OAUTH 2.0 será necessário utilizá-lo para criar o código de Refresh Token.
Para isso é necessário importar o modelo de Autorização conforme ilustrado no Passo 1
O Refresh Token não expira e será utilizado constantemente para gerar o Access Token.
A chamada POST deverá apontar para a seguinte URL:
https://api.amazon.com/auth/o2/token
Authorization
Na aba Authorization selecione TYPE como AWS Signature.
É necessário especificar as suas credenciais AWS (Que foram geradas no CSV durante a criação da role de acesso) nos campos AccessKey e SecretKey.
AWS Region e Service Name são opcionais mas podem ser utilizados como us-east-1 e execute-api respectivamente.
Na aba Body especifique os seguintes parâmetros:
Key | Value |
---|---|
grant_type | authorization_code |
code | (Aqui você irá colar o código OAUTH 2.0 recebido na link de callback de autorização) |
client_id | sellercentral.amazon.com > Aplicativos e Serviços > Desenvolver Aplicativos > Credenciais LWA (Visualizar) > Identificador de Cliente |
client_secret | sellercentral.amazon.com > Aplicativos e Serviços > Desenvolver Aplicativos > Credenciais LWA (Visualizar) > Segredo do Cliente |
redirect_url | Aqui você vai colocar a mesma URI de callback cadastrada no processo de autorização |
Envie a solicitação do Postman clicando em SEND e capturando o refresh_token conforme ilustra a imagem abaixo:
Refresh Token
Após ter obtido o Refresh_Token é necessário criar uma chamada que através dele possa gerar o token de acesso (Access_Token), que é necessário nas chamadas da SP-API.
Diferente do refresh_token, o access_token expira (a cada hora) e precisa ser renovado regularmente.
A chamada POST deverá apontar para a seguinte URL:
https://api.amazon.com/auth/o2/token
Authorization
Na aba Authorization selecione TYPE como AWS Signature e especifique os parâmetros conforme o Passo 2.
Key | Value |
---|---|
grant_type | refresh_token |
refresh_token | (Aqui você coloca o refresh_token que obteve no Passo 2) |
client_id | sellercentral.amazon.com > Aplicativos e Serviços > Desenvolver Aplicativos > Credenciais LWA (Visualizar) > Identificador de Cliente |
client_secret | sellercentral.amazon.com > Aplicativos e Serviços > Desenvolver Aplicativos > Credenciais LWA (Visualizar) > Segredo do Cliente |
redirect_url | Aqui você vai colocar a mesma URI de call back cadastrada no processo de autorização |
Especifique os parâmetros conforme a imagem abaixo:
Guarde essa informação!
Guarde o access_token obtido para realizarmos a chamada da API no Passo 5!
Sessions Token
Gerar e configurar o Session Token (STS)
Além do access_token, é necessário configurar o token de seção da API. Para mais informações, utilize este link de referência.
Para isso é necessário realizar as seguintes configurações no seu Postman:
Authorization
Na aba Authorization selecione TYPE como AWS Signature e especifique os parâmetros conforme o Passo 2.
Importante
Ainda na aba Authorization é necessário especificar Service Name com o parâmetro sts conforme ilustra a figura abaixo. Se este parâmetro não for especificado, a chamada não funcionará corretamente.
Configurando o service name em sts:
A chamada a ser realizada no Postman deverá ser GET na seguinte URL:
https://sts.amazonaws.com/
Key | Value |
---|---|
Version | 2011-06-15 |
Action | AssumeRole |
RoleArn | (Aqui você utiliza a role que você configurou na sua conta de desenvolvedor AWS) arn:aws:iam::12345:role/role_xyz |
DurationSeconds | (Tempo de duração da sessão em segundos) 3600 |
RoleSessionName | (Qualquer nome aqui) Teste |
Com todos os parâmetros configurados, sua chamada deve ficar semelhante ao exemplo abaixo:
https://sts.amazonaws.com/?Version=2011-06-15&Action=AssumeRole&RoleArn=arn:aws:iam::12345:role/role_xyz&DurationSeconds=3600&RoleSessionName=Teste
Conforme ilustra a imagem abaixo:
O resultado dessa chamada pode ser dividida em 3 informações que deverão ser utilizadas na chamada da API no Passo 5, são elas:
- AccessKeyId
- SecretAccessKey
- SessionToken
Guarde essas informações!
- AccessKeyId
- SecretAccessKey
- SessionToken
Para utilizarmos no Passo 5.
Chamada da API
Agora que já possuímos o Access_Token (Passo 3) e também as informações da Session_Token (Passo 4), será possível realizar uma chamada na API de catálogo para realizarmos um teste.
O primeiro passo é importar o modelo da API de catálogos de produto conforme especificado no Passo 1.
No nosso exemplo, utilizamos o Marketplace do Brasil e um EAN exemplo para obtermos a informação de um produto.
Key | Value |
---|---|
MarketplaceId | A2Q3Y263D00KWC |
EAN | 7898558570334 |
Deste modo a URL base GET, inicialmente configurada em:
https://sellingpartnerapi-na.amazon.com/catalog/v0/items/:asin
Conforme ilustra a imagem:
https://sellingpartnerapi-na.amazon.com/catalog/v0/items/:asin?MarketplaceId=A2Q3Y263D00KWC&EAN=7898558570334
Agora precisamos utilizar as configurações de seção que obtivemos no Passo 4.
Authorization
Na Aba Authorization, copie as credenciais da seção nas credenciais de usuário do seguinte modo:
- AccessKeyID > AccessKey
- SecretAccessKeyId > SecretKey
- SessionToken > Session Token
A figura abaixo ilustra detalhadamente quais campos devem ser copiados na aba de autorização.
Assim que isso tiver sido realizado, é necessário configurar no header da chamada o Access_Token obtido no Passo 3.
Para isso, na aba Header, crie o seguinte item:
Key | Value |
---|---|
x-amz-access-token | (Aqui você deve inserir o accesstoken que você gerou no Passo 3. Ex. **Atza|IwEBICt2IIjf4SJpsLt4mP2V2y6cyfUnQZf8nmDqdEDTrWnTVbgs_M7P...** |
Conforme ilustra a imagem abaixo:
Agora é só clicar em SEND e enviar sua requisição para a API!
A API deste exemplo trouxe o seguinte resultado:
{
"payload": {
"Items": [
{
"Identifiers": {
"MarketplaceASIN": {
"MarketplaceId": "A2Q3Y263D00KWC",
"ASIN": "B07JM9487B"
}
},
"AttributeSets": [
{
"MaterialType": [
"Couro sintético"
],
"Brand": "Phoenix Puff",
"ItemDimensions": {
"Height": {
"value": 18.11023620200,
"Units": "inches"
},
"Length": {
"value": 18.11023620200,
"Units": "inches"
},
"Width": {
"value": 18.11023620200,
"Units": "inches"
},
"Weight": {
"value": 7.8264103010000,
"Units": "pounds"
}
},
"Label": "Mobly",
"Manufacturer": "Mobly",
"NumberOfItems": 1,
"PackageDimensions": {
"Height": {
"value": 18.11023620200,
"Units": "inches"
},
"Length": {
"value": 18.11023620200,
"Units": "inches"
},
"Width": {
"value": 18.11023620200,
"Units": "inches"
},
"Weight": {
"value": 7.8264103010000,
"Units": "pounds"
}
},
"PackageQuantity": 1,
"ProductGroup": "Home",
"ProductTypeName": "BEAN_BAG_CHAIR",
"Publisher": "Mobly",
"SmallImage": {
"URL": "https://m.media-amazon.com/images/I/41QfRz4baKL._SL75_.jpg",
"Height": {
"Units": "pixels",
"value": 75
},
"Width": {
"Units": "pixels",
"value": 75
}
},
"Studio": "Mobly",
"Title": "Puff Infantil Banana Grande Unissex em Corino"
}
],
"Relationships": [],
"SalesRankings": [
{
"ProductCategoryId": "furniture_display_on_website",
"Rank": 2631
},
{
"ProductCategoryId": "17351366011",
"Rank": 24
}
]
}
]
}
}
Que por acaso é o seguinte produto (Caso você queira comprá-lo na Amazon!) :
https://www.amazon.com.br/Puff-Infantil-Banana-Grande-Unissex/dp/B07JM9487B
Exemplo RDT
Para completar esta etapa, os passos anteriores de setup devem ter sido finalizados. Esta etapa trará instruções para fazer chamadas na SP-API.
1. Adicione uma nova requisição
No canto superior esquerdo, clique em "New" e adicione uma nova requisição HTTP
2. Requisição POST
A requisição deve ser do tipo POST para a seguinte URL:
https://sellingpartnerapi-na.amazon.com/tokens/2021-03-01/restrictedDataToken
3. Authorization
Na aba "Authorization" devemos incluir os dados do Session Token, que criamos em 2. Session Token (STS), passe esses dados em "AccessKey", "SecretKey" e "Session Token".
Exemplo de Session Token
Passando os dados obtidos
4. Headers
Na aba "Headers" devemos incluir a chave "x-amz-access-token", que criamos em 3. Refresh Token.
5. Body
No corpo da requisição é necessário o envio do seguinte JSON:
{
"restrictedResources": [
{
"method": "GET",
"path": "/orders/v0/orders/",
"dataElements": ["buyerInfo", "shippingAddress"]
}
]
}
6. Send
Faça a criação do Feed clicando no botão "Send"
7. Sucesso na criação
Se você obteve êxito na criação você deve receber um restrictedDataToken
e expiresIn
, como no exemplo, esse Token deve ser passado nas chamadas de Order na chave x-amz-access-token
do Headers.
{
"expiresIn": 3600,
"restrictedDataToken": "Atz.sprdt|AYABeCv+cTIjsYiLjsOOwPz8kikAAAABAAdhd3Mta21=="
}
Updated over 2 years ago