Я пытаюсь получить статистику пользователя от API трекера Fortnite.
У меня есть ключ API, и я использую правильный URL-адрес как , указанный в документации
Шаблон URL:
https://api.fortnitetracker.com/v1/profile/{platform}/{epic-nickname}
Желаемый URL:
https://api.fortnitetracker.com/v1/profile/pc/xantium0
Если я использую эту ссылку в браузере, я получаю {"message":"No API key found in request"}
(так как я не передал ключ API), поэтому ссылка должна быть правильной. Также, если я не передам ключ API с помощью urllib, я получу ошибку 403.
Я проверил, как передать заголовок в запросе: Как установить заголовки, используя urllib python?
и до сих пор этот код:
import urllib.request as ur
request = ur.Request('https://api.fortnitetracker.com/v1/profile/pc/xantium0', headers={'TRN-Api-Key' : 'xxx'})
response = ur.urlopen(request)
print(response.read())
При запуске я получаю эту ошибку:
urllib.error.HTTPError: HTTP Error 403: Forbidden
403 проверяется как:
HTTP 403 - это стандартный код состояния HTTP, передаваемый клиентам HTTP-сервером для указания того, что сервер понял запрос, но не выполнит его. Существует ряд кодов ошибок суб-состояния, которые предоставляют более конкретную причину для ответа кодом состояния 403.
https://en.wikipedia.org/wiki/HTTP_403
Ответ тот же, если я не передам ключ API в заголовке.
Я могу думать только о трех причинах, по которым этот код не работает:
- Я передал неправильное имя заголовка (т.е. это не
TRN-Api-Key
)
- Мой код неверен, и я не передаю заголовок серверу
- Меня забанили
Моя проблема в том, что я думаю, что мой код правильный:
Из документации :
urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
Я прошел url
и прошел headers
(без путаницы с аргументом data
). В документации API также упоминается, что она должна быть передана в заголовках.
Я также вполне уверен, что мне нужно использовать TRN-Api-Key
, как показано в документации API:
TRN-Api-Key: xxx
Также в этот вопрос (с использованием Ruby):
header = {
key: "TRN-Api-Key: Somelong-api-key-here"
}
Или меня забанили (это возможно, хотя я получил ключ 15 минут назад) есть ли способ проверить? Эта ошибка будет возвращена?
Что мешает мне получить статистику пользователя?