Я пытаюсь сделать запрос API /v3/webhooks/subscriptions от Walmart, но он отвечает мне: 415 Неподдерживаемый тип носителя.
Я назначил Accept, а Content-Type — application/json в заголовках. Что мне делать дальше, чтобы решить эту проблему?
curl --location 'https://marketplace.walmartapis.com/v3/webhooks/subscriptions' \
--header 'WM_SEC.ACCESS_TOKEN;' \
--header 'WM_QOS.CORRELATION_ID: 4abf82fc-222c-4def-a498-7eadfc36f825' \
--header 'WM_SVC.NAME: Walmart Marketplace' \
--header 'Authorization;' \
--header 'Accept: application/json' \
--header 'ChannelType;' \
--data '{
"events": [
{
"eventType": "PO_CREATED",
"partnerId": "",
"eventVersion": "V1",
"resourceName": "ORDER",
"eventUrl": "",
"status": "ACTIVE"
}
]
}'
Вот CURL, который я создаю. Пожалуйста, не передавайте Content-Type в заголовке. Если вы попытаетесь вызвать через Postman, попробуйте удалить значение по умолчанию Content-Type, созданное Postman.
import requests
import json
data = { "events": [ { "eventType": "PO_CREATED", "eventVersion": "V1","resourceName": "ORDER", "eventUrl": "your notification url", "status": "ACTIVE"} ]}
url = 'https://marketplace.walmartapis.com/v3/webhooks/subscriptions'
headers = {'Accept':'application/json', 'WM_SEC.ACCESS_TOKEN':'access_token', 'WM_QOS.CORRELATION_ID':'4abf82fc-222c-4def-a498-7eadfc36f825', 'WM_SVC.NAME':'Walmart Marketplace'}
response = requests.post(url,headers=headers,data=json.dumps(data),)
return response.json()
Get the following result
"events": [
{
"eventType": "PO_CREATED",
"subscriptionId": "Subscription id",
"partnerId": "Partner id",
"eventVersion": "V1",
"resourceName": "ORDER",
"eventUrl": "Event url",
"status": "ACTIVE",
"channelType": "WEBHOOKS"
}
]
Я решаю эту проблему, следуя запросу Python и примеру кода здесь. Убедитесь, что строка json тела запроса