- Информер погоды на сайте — api OpenWeatherMap
- Быстрая навигация:
- 1 Получение ключа OpenWeatherMap API
- 1 Определение id города
- PHP код отправки запроса в API погоды OpenWeatherMap
- Подготовка HTML разметки для отображения прогноза погоды на сайте
- 4 API погоды через JavaScript
- OpenWeatherMap API HTTPS отказ JavaScript
- 5 ответов
- Using OpenWeatherMap API gives 401 error
- 3 Answers 3
- 1) Check if API key is activated
- 2) Check .env for typos & syntax
- 3) Check request URL
- 4) Debug using dotenv:
- I got API by register but not work error: Invalid API key #46
- Comments
- munkh-altai commented Oct 10, 2015
- cmfcmf commented Oct 12, 2015 •
- munkh-altai commented Oct 18, 2015
- cmfcmf commented Oct 18, 2015
- marlonlom commented Apr 20, 2016
- cmfcmf commented Apr 20, 2016
- georgeharnwell commented May 4, 2016
- cmfcmf commented May 6, 2016 •
- huynhit92 commented Sep 30, 2016
- munkh-altai commented Oct 8, 2016
- mapsgeek commented Oct 23, 2016 •
- cmfcmf commented Oct 24, 2016
- mcsanantonio commented Dec 3, 2016
- NahidRM commented Dec 30, 2016
- 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
- Naveed-anwar123 commented Aug 27, 2017
- cmfcmf commented Aug 28, 2017
- khjoony commented Nov 25, 2017
- leosalass commented Jun 9, 2018
- Работа с погодой в PHP с помощью OpenWeatherMap API
- Получение ключа для OpenWeatherMap API:
- Работа с 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 варианта;
- Перейти на незащищенную страницу кодового заглушки ( http://codepen.io/. )
- Купите 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=
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
Naveed-anwar123 commented Aug 27, 2017
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.
Источник