Задать вопрос
@windf1n

Ошибка 418: I'm a teapot при подключении к API KazanExpress. В чём причина?

Я пытаюсь забрать данные о магазине по API KazanExpress вот таким путём:
headers = {
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36',
    'Authorization': 'Basic НЕСКАЖУ'
}

login = requests.post('https://api.kazanexpress.ru/api/oauth/token?grant_type=password&username=НЕСКАЖУ&password=НЕСКАЖУ, headers=headers)

print(login.json())

headers.update({
    'Authorization': 'Bearer ' + login.json()['access_token']
})

shops = requests.get('https://api.kazanexpress.ru/api/seller/shop/', headers=headers)
print(shops.json())


Итог такой: переменная login отлично отрабатывает и получает нужные данные. А переменная shops выдаёт ошибку:
{'timestamp': 1621067445165, 'status': 418, 'error': "I'm a teapot", 'message': "I'm a teapot", 'path': '/api/seller/shop/'}


При этом каким-то магическим образом этот код иногда срабатывает, а иногда нет...

Как мне исправить эту ошибку?

Дополнение:
user-agent указываю, чтобы данные получить, без этого header возвращает пустой массив.
API может быть и закрытое, но есть приложения и боты в телеграме, которые отлично работают с API KazanExpress.

UPD:
Я заметил через инструмент Network в Google Chrome, что сначала производится запрос через OPTIONS, а потом через GET
  • Вопрос задан
  • 1435 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Поставьте любое работающее приложение и настройте fiddler потом смотрите трафик приложения ну и модифицируйте своё
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы