Использование OpenWeatherMap API дает ошибку 401

Я пытаюсь получить данные о погоде в Лондоне в формате JSON, но получаю HTTPError: HTTP Error 401: Unauthorized. Как заставить API работать?

import urllib2
url = "http://api.openweathermap.org/data/2.5/forecast/daily?q=London&cnt=10&mode=json&units=metric"
response = urllib2.urlopen(url).read()

person hky404    schedule 12.10.2015    source источник


Ответы (3)


docs открываются с сообщением о том, что сначала вам необходимо зарегистрироваться для получения ключа API.

Для доступа к API вам необходимо зарегистрироваться для получения ключа API.

Поскольку ваш URL-адрес не содержит ключа, сайт сообщает, что вы не авторизованы. Следуйте инструкциям, чтобы получить ключ, затем добавьте его в параметры запроса.

http://api.openweathermap.org/data/2.5/forecast/daily?APPID=12345&q=...
person davidism    schedule 13.10.2015

Ошибка: Недействительный ключ API. Дополнительную информацию см. На странице http://openweathermap.org/faq#error401

На вызовы API выдается ошибка 401: Вы можете получить ошибку 401 в следующих случаях:

вот несколько шагов, чтобы найти проблему.

1) Проверьте, активирован ли ключ API

некоторые службы API предоставляют ключевую информацию на панели управления, независимо от того, активирована ли она, истек срок ее действия и т. д. openWeatherMap этого не делает. чтобы проверить, работает ли ваш ключ 'СДЕЛАТЬ ВЫЗОВ API ИЗ БРАУЗЕРА' api.openweathermap.org/data/2.5/weather?q=peshawar&appid=API_key

замените API_key своим собственным ключом. Если вы успешно получили данные, ваш ключ будет активирован, в противном случае подождите несколько часов, чтобы активировать ключ.

2) Проверьте .env на наличие опечаток и синтаксиса.

.env - это файл, который используется для скрытия учетных данных, таких как API_KEY, в коде на стороне сервера. убедитесь, что ваши переменные файла .env используют правильный синтаксис: ИМЯ = ЗНАЧЕНИЕ.

API_KEY=djgkv43439d90bkckcs

без точки с запятой, кавычек и т. д.

3) Проверить URL запроса

проверьте URL-адрес запроса, по которому будет выполняться вызов API, убедитесь, что

  • В нем нет пробелов, скобок и т. Д.
  • правильно в соответствии с кодировкой URL
  • правильно согласно документации API

4) Отладка с помощью dotenv:

чтобы узнать, правильно ли вы dotenv пакет анализирует ключ API, используйте следующий код

const result = dotenv.config()

if (result.error) {
  throw result.error
} 
console.log(result.parsed)

этот код проверяет, анализируются ли переменные файла .env, он выводит значение API_KEY, если оно было проанализировано, в противном случае выводит ошибку, возникающую при синтаксическом анализе.

Надеюсь, это поможет :)

person Muhammad Uzair    schedule 13.12.2020

Ключ api не указан в вашем URL! прежде всего вы должны зарегистрироваться в https://openweathermap.org/, затем получить ключ api в своей личной учетной записи, после этого выполните это выглядит так: http://api.openweathermap.org/data/2.5/weather?q=%7Bcity%7D&appid=YOUR_API_KEY_HERE&units=metric

замените код apikey на {YOUR_API_KEY_HERE}, затем запустите приложение.

person Amin1994    schedule 28.06.2020