Не работает api openweathermap

Содержание
  1. Информер погоды на сайте — api OpenWeatherMap
  2. Быстрая навигация:
  3. 1 Получение ключа OpenWeatherMap API
  4. 1 Определение id города
  5. PHP код отправки запроса в API погоды OpenWeatherMap
  6. Подготовка HTML разметки для отображения прогноза погоды на сайте
  7. 4 API погоды через JavaScript
  8. OpenWeatherMap API HTTPS отказ JavaScript
  9. 5 ответов
  10. Using OpenWeatherMap API gives 401 error
  11. 3 Answers 3
  12. 1) Check if API key is activated
  13. 2) Check .env for typos & syntax
  14. 3) Check request URL
  15. 4) Debug using dotenv:
  16. I got API by register but not work error: Invalid API key #46
  17. Comments
  18. munkh-altai commented Oct 10, 2015
  19. cmfcmf commented Oct 12, 2015 •
  20. munkh-altai commented Oct 18, 2015
  21. cmfcmf commented Oct 18, 2015
  22. marlonlom commented Apr 20, 2016
  23. cmfcmf commented Apr 20, 2016
  24. georgeharnwell commented May 4, 2016
  25. cmfcmf commented May 6, 2016 •
  26. huynhit92 commented Sep 30, 2016
  27. munkh-altai commented Oct 8, 2016
  28. mapsgeek commented Oct 23, 2016 •
  29. cmfcmf commented Oct 24, 2016
  30. mcsanantonio commented Dec 3, 2016
  31. NahidRM commented Dec 30, 2016
  32. This comment was marked as spam.
  33. This comment was marked as spam.
  34. This comment was marked as spam.
  35. This comment was marked as spam.
  36. This comment has been hidden.
  37. 302wanger commented Jun 12, 2017
  38. Naveed-anwar123 commented Aug 27, 2017
  39. cmfcmf commented Aug 28, 2017
  40. khjoony commented Nov 25, 2017
  41. leosalass commented Jun 9, 2018
  42. Работа с погодой в PHP с помощью OpenWeatherMap API
  43. Получение ключа для OpenWeatherMap API:
  44. Работа с API погоды в PHP:
Читайте также:  Приложение фонбет для андроид не работает

Информер погоды на сайте — api OpenWeatherMap

В этой статье мы создадим небольшое приложение на PHP, которое будет показывать прогноз погоды, а затем повторим тоже самое на JavaScript. Для этих целей нам понадобиться данные о погоде и получать мы их будем с помощью API. Существует множество вариантов, за которые нужно заплатить. Для наших целей мы будем использовать сервис OpenWeatherMap, который позволяет отправлять до 60 запросов в минуту бесплатно. Если ваш трафик будет больше, то вы сможете либо воспользоваться продвинутым платным API, либо настроить кэширование для информера погоды на сайте.

Пример интеграции прогноза погоды на сайт

Интегрировать этот API на свой сайт и создать полноценный информер погоды довольно легко. Мы сделаем это в 3 этапа, а затем попробуем сделать тоже самое на JS:

Быстрая навигация:

1 Получение ключа OpenWeatherMap API

Чтобы получить API ключ, нам нужно зарегистрироваться в сервисе OpenWeatherMap. Если у вас возникли проблемы и страница не загружается, не работает регистрация — попробуйте зарегистрироваться через VPN.

Для создания информера погоды на сайте введите название компании и выберите цель вашего приложения.

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

1 Определение id города

Скачайте архив с json файлом, откройте его в текстовом редакторе/вашей любимой IDE. Через поиск (ctrl + F) найдите нужный вам город. К примеру Moscow. Обратите внимание, что городов с одинаковым названием может быть несколько, по этому ориентируйтесь по полю country. Сохраните id города под рукой, он нам еще понадобится.

PHP код отправки запроса в API погоды OpenWeatherMap

С помощью кода ниже мы отправим запрос для получения прогноза погоды. Для этого мы используем PHP cURL и в ответ получим данные в формате JSON. Для начала подготовим URL:

Далее выполняем cURL запрос:

Мы получили нужные данные и текущее время, давайте создадим разметку и подставим в нее нужные значения.

Подготовка HTML разметки для отображения прогноза погоды на сайте

Выведим в HTML код описание погоды, диапазон температуры, влажность и скорость ветра.

4 API погоды через JavaScript

Такой же запрос можно сделать на клиенте, для этого воспользуемся JavaScript методом fetch , получим нужные данные и отобразим их в html разметке.

Попробуйте создать новую разметку в виде виджета погоды. Добавьте в неё элементы с классами weather__city, weather__forecast, weather__desc и weather__icon.

Посмотрите как работает такой код. В этом примере вместо иконки мы используем разные background-image.

Узнать погоду в Москве

OpenWeatherMap является отличным способом попробовать API погоды на своем сайте, но все же работает он не идеально. Если вы приняли решение, что вам нужен подобный функционал, стоит обратить внимание на платные решения.

Источник

OpenWeatherMap API HTTPS отказ JavaScript

Я работаю в свободном кодовом лагере и пытаюсь создать приложение погоды, используя API OpenWeatherMap, но оно не работает. Я использую codepen, потому что это то, что должно быть отправлено, и это должен быть https, чтобы использовать географическое местоположение. Это стало проблемой, потому что я получаю эту ошибку.

По какой-то причине я подумал, что это может сработать, если я изменю вызов API на HTTPS, но потом получаю эту ошибку

Я использовал ключ API, но я только что спрятал его здесь.

Я пробовал несколько разных способов исправить это, я видел в других сообщениях, но пока ничего не получалось: /

Я использую этот код для запроса

Любая помощь будет оценена 🙂

5 ответов

Попробуйте вместо этого использовать конечную точку https://pro.openweathermap.org .

На самом деле, похоже, что поддержка OpenWeatherMap SSL не бесплатна.
Вы должны либо прокси свои запросы, либо использовать различные услуги.

Я столкнулся с этой же проблемой. Наконец, я решил эту проблему, просто используя незащищенный HTTP-запрос вместо защищенного HTTPS-запроса. то есть я изменил URL-адрес API с https://api.openweathermap.org/. на http://api.openweathermap.org/.

Вот вспомогательный код:

НЕ РАБОТАЕТ

РАБОТАЕТ

Теперь он работает, я думаю, это потому, что он говорит readystate вместо readyState: /

Я был в точно такой же ситуации, и вот ответ.

Это связано с тем, что страница ( https://codepen.io ) загружается по протоколу https, однако был сделан запрос к незащищенному источнику. ( http://openweathermap.org ) . Таким образом, в основном это не будет предоставлять незащищенный контент на защищенной странице.

У вас есть 2 варианта;

  1. Перейти на незащищенную страницу кодового заглушки ( http://codepen.io/. )
  2. Купите PRO членство на openweathermap.org и отправляйте запросы на канал https: // .

Если вы должны использовать HTTPS, добавьте следующее к URL-адресу API https://cors-anywhere.herokuapp.com/ так, чтобы это стало чем-то вроде этого .

Используйте это для выполнения вызовов API, и они будут считаться защищенными

Источник

Using OpenWeatherMap API gives 401 error

I’m trying to get the weather data for London in JSON but I am getting HTTPError: HTTP Error 401: Unauthorized . How do I get the API working?

3 Answers 3

The docs open by telling you that you need to register for an API key first.

To access the API you need to sign up for an API key

Since your url doesn’t contain a key, the site tells you you’re not authorized. Follow the instructions to get a key, then add it to the query parameters.

Error: Invalid API key. Please see http://openweathermap.org/faq#error401 for more info

API calls responds with 401 error: You can get the error 401 in the following cases:

  • You did not specify your API key in API request.
  • Your API key is not activated yet. Within the next couple of hours, it will be activated and ready to use.
  • You are using wrong API key in API request. Please, check your right API key in personal account.
  • You have free subscription and try to get access to our paid services (for example, 16 days/daily forecast API, any historical weather data, Weather maps 2.0, etc). Please, check your tariff in your [personal account]([price and condition]).

here are some steps to find problem.

1) Check if API key is activated

some API services provide key information in dashboard whether its activated, expired etc. openWeatherMap don’t. to verify whether your key is working ‘MAKE API CALL FROM BROWSER’ api.openweathermap.org/data/2.5/weather?q=peshawar&appid=API_key

replace API_key with your own key, if you get data successfully then your key is activated otherwise wait for few hours to get key activated.

2) Check .env for typos & syntax

.env is file which is used to hide credentials such as API_KEY in server side code. make sure your .env file variables are using correct syntax which is NAME=VALUE

no semicolon, quotes etc

3) Check request URL

check request url where API call will be made , make sure

  • It doesn’t have spaces, braces etc
  • correct according to URL encoding
  • correct according to API documentation

4) Debug using dotenv:

to know if you dotenv package is parsing API key correctly use the following code

this code checks if .env file variables are being parsed, it will print API_KEY value if its been parsed otherwise will print error which occur while parsing.

Источник

I got API by register but not work error: Invalid API key #46

Comments

munkh-altai commented Oct 10, 2015

I got api by free register and i added my api to $weather = $owm->getWeather(‘Berlin’, $units, $lang, ‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’); xxxxxxx is my api but i got error

OpenWeatherMap exception: Unknown fatal error: OpenWeatherMap returned the following json object: Invalid API key. Please see http://openweathermap.org/faq#error401 for more info. (Code 0).

The text was updated successfully, but these errors were encountered:

cmfcmf commented Oct 12, 2015 •

Hi @altaihero, does calling the following URL in your browser work for you (replace the X’s by your api key)?

For everyone reading this in the future: It is most likely that a new API key takes a few minutes until it works.

munkh-altai commented Oct 18, 2015

Hi @cmfcmf i was’t use xxxx in APPID xxxx is just example.
But I it is fine working today.

cmfcmf commented Oct 18, 2015

marlonlom commented Apr 20, 2016

cmfcmf commented Apr 20, 2016

Does the problem persist? Does calling http://api.openweathermap.org/data/2.5/weather?q=Berlin&APPID=XXXXXXXXXXXXXXXXXXXXXXXX directly from your browser work?
Please note that it takes a few minutes until your new api key is activated.

Let me know if it works now!

georgeharnwell commented May 4, 2016

I am now having this issue. I can successfully navigate to http://api.openweathermap.org/data/2.5/weather?q=Manchester,UK with my API key. But any of the historical calls I make are returning an Unauthorised error

Kind regards,
George

cmfcmf commented May 6, 2016 •

Hi @georgeharnwell, are you on a free account? The historical weather condition api is not free, see http://openweathermap.org/price (it was free months (years?) ago but isn’t anymore).

huynhit92 commented Sep 30, 2016

Hi @munkh-altai You should use appid not APPID

munkh-altai commented Oct 8, 2016

thank you all. My problem solved. 😉
@huynhit92

mapsgeek commented Oct 23, 2016 •

i’m calling it with appid= and it doesn’t work ! this must be some kind of bug and failure in the API
i even deleted the API key and generated a new one still the same

cmfcmf commented Oct 24, 2016

Please note that it takes a few minutes until your new api key is activated.

If the key doesn’t work after a few minutes, try contacting the OpenWeatherMap team. I can’t really help with that. 😕

mcsanantonio commented Dec 3, 2016

I tried the answers above but to no avail. 👎

NahidRM commented Dec 30, 2016

Yup, me too. The suggestions here haven’t worked

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment has been hidden.

302wanger commented Jun 12, 2017

If you are a new start,it need ten minutes or more time before the key can use

cmfcmf commented Aug 28, 2017

@Naveed-anwar123 you are using the samples.openweathermap.org endpoint. You should use the api.openweathermap.org endpoint instead.

khjoony commented Nov 25, 2017

Caution : Notice the difference between opostrophe and grave key
API — OpenWeatherMap 날씨 Invalid api key

leosalass commented Jun 9, 2018

Hi im haveing the next error:
Client error: GET http://api.openweathermap.org/data/2.5/api/user/city resulted in a 401 Unauthorized response: <"cod":401, "message": "Invalid API key. Please see http://openweathermap.org/faq#error401 for more info.">

im trying to consume two diferent services:
1- api.openweathermap.org/data/2.5/weather?lat=10.9883696&lon=-74.8051523&units=metric&appid=xxxxxxxxxxxxxxxxxxxx

both are working on postman and web browser, but when i use it on my project i allways get 401 error.

on my front im useing laravel with vue + axios.get
on my back im working on laravel too,

the problem persists on front and back api calls.

other importrant point, im using laravel homestead(vagrant) for develipong

Источник

Работа с погодой в PHP с помощью OpenWeatherMap API

В этой статье будет показываться как происходит работа с API погоды в PHP, использовать будем OpenWeatherMap API.

Получение ключа для OpenWeatherMap API:

Для того чтобы работать с OpenWeatherMap API, нужно получить ключ, для этого зарегистрируйтесь на этом сайте.

Регистрация проходит как обычно, просто вводите username, email и два раза пароль.

После этого вам предложат ввести имя организации и цель, для чего вы будите использовать этот API.

Нажимаем «Save», после этого вам будет доступен API ключ, для того что бы брать информацию из OpenWeatherMap.

Вот мой ключ, который я сделал для теста и статьи.

Работа с API погоды в PHP:

Теперь перейдём к работе с OpenWeatherMap API, суть работы будет в том, что мы отправляем GET запрос и в качестве ответа получаем JSON данные, но перед этим нужно настроить ссылку с запросом.

Теперь разберём этот код, что тут, сначала мы создаём переменную $apiKey , который хранить в себе ключ для работы с API, дальше название города, который нам нужен.

Потом создаём URL с GET запросами, вот их и надо рассмотреть.

  • q — Название города, у которого нужно получить погоду;
  • lang — Язык данных;
  • units — Тип градусов;
  • appid — API ключ;

Это в целом всё что вам нужно, самое главное, не забудьте задать units значение metric , иначе у вас погода будет не в цельсиях а в фаренгейтах.

Если вам что то не понятно, то рекомендую прочитать часть учебника: PHP работа с формой.

Теперь перейдём к отправке запроса, для этого будем использовать стандартную библиотек PHP.

Источник

Оцените статью