Меню

Яндекс апи ошибка 403

  1. HTTP code 403 when accessing the API
  2. “No ‘Access-Control-Allow-Origin’ …” when the request is generated by the browser

Possible reasons:

The request header doesn’t contain the API access key.

Make sure the request includes the X-Yandex-API-Key header with the access key you received.

The request was sent to an incorrect URL.

The request URL depends on the chosen rate.

For the rate:

  • “Yandex.Weather on your site”https://api.weather.yandex.ru/v2/informers/.

  • “Test”https://api.weather.yandex.ru/v2/forecast/.

The rate expired.

The “Test” rate is valid for 30 days. If you need to extend your use of the service under this rate, write to us.

Request limit is exceeded.

The “Test” and “Yandex.Weather on your site” rates have a daily limit on the number of requests. To continue using the API, change the rate or wait for the next day.

You can see the API key value, current rate, expiration date, number of requests sent and the reason for blocking in the Keys section in the Developer Dashboard.

You can change the rate in the Finance section in the Developer Dashboard.

The Yandex.Weather API is not meant for sending requests from the user’s browser. These actions are not safe, as someone can view your API key through the browser tools.

If you need to make requests from the browser, use an intermediary server that will accept client requests, add the access key to them and send requests to the Yandex.Weather API.

I’ve installed component and using test (30-days trial) API key

I had following errors in log:

Log Details (ERROR)
Tue Feb 18 2020 14:09:24 GMT+0300 (Moscow Standard Time)
Error fetching data from Yandex.Weather, 403, Forbidden

and the second one:

Tue Feb 18 2020 14:15:36 GMT+0300 (Moscow Standard Time)
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 424, in _async_add_entity
    await entity.async_update_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 284, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 320, in _async_write_ha_state
    state = self.state
  File "/usr/src/homeassistant/homeassistant/components/weather/__init__.py", line 187, in state
    return self.condition
  File "/config/custom_components/yandex_weather/weather.py", line 168, in condition
    if self._weather_data.current['condition'] in v), None)
  File "/config/custom_components/yandex_weather/weather.py", line 168, in <genexpr>
    if self._weather_data.current['condition'] in v), None)
KeyError: 'condition'

Could you please help me to resolve an issues?
I’m using hass.io Home Assistant 0.105.3

many thanks,
Ilya

Написал скрипт в котором асинхронная функция fetch-запросом получает от API Яндекс диска ответ в виде json, который в дальнейшем используется для перемещения по директориям и воспроизведения аудио-файлов в них. Но проблема в том, что аудио не воспроизводится… при запросе 403 ошибка. Не понимаю, что я сделал не так?
Для примера можно зайти в директорию Семейные пары
jsfiddle.net


  • Вопрос задан

    08 июн. 2022

  • 218 просмотров

Оказывается, yandex почему-то возвращает 403, если в заголовках запроса есть параметр Referrer. Помогло добавить в html страницы:

<meta name="referrer" content="no-referrer">

После этого Referrer из запросов исчез, и всё заработало.

Пригласить эксперта


  • Показать ещё
    Загружается…

31 янв. 2023, в 17:39

100000 руб./за проект

31 янв. 2023, в 17:36

30000 руб./за проект

31 янв. 2023, в 17:33

10000 руб./за проект

Минуточку внимания

Яндекс какое-то время тому назад сделал доступной нормальную настройку ключей, чтобы прописывать разрешенные IP и домены. Алилуйя!!!

Теперь можно использовать один ключ для целой группы своих сервисов, но не все так гладко получается.

Есть несколько проектов у которых не одна и не две, а больше витрин насаженных на одну админку и раскиданных по целому кусту IP адресов. Чтобы сервис карт не выдавал ошибок, в настройках ключей были прописаны необходимые IP и домены, с которых происходит обращение.

В итоге после этого при оформлении заказов (хоть в один клик, хоть через полную форму, хоть пошагово, хоть при оформлении в корзине) стали сыпаться ошибки в geocode.log такого вида

2020-04-12 13:17:34 94.25.168.65
yandexMap: {"statusCode":403,"error":"Forbidden","message":"Invalid key"}
## wa-system/file/waNet.class.php(206)
#0 wa-system/file/waNet.class.php(190): waNet->onQueryComplete('{"statusCode":4...')
#1 wa-system/map/adapters/yandexMap.class.php(193): waNet->query('https://geocode...', Array)
#2 wa-system/map/adapters/yandexMap.class.php(125): yandexMap->sendGeoCodingRequest('/xD0/xA0/xD0/xBE/xD1/x81/xD1/x81/xD0/xB8/xD1/x8F,/xD0/x9C...')
#3 wa-system/contact/waContactAddressField.class.php(83): yandexMap->geocode('/xD0/xA0/xD0/xBE/xD1/x81/xD1/x81/xD0/xB8/xD0/xB9/xD1/x81/xD0...')
....

2020-04-12 13:45:27 213.171.57.164
yandexMap: {"statusCode":403,"error":"Forbidden","message":"Invalid key"}
## wa-system/file/waNet.class.php(206)
#0 wa-system/file/waNet.class.php(190): waNet->onQueryComplete('{"statusCode":4...')

2020-04-12 15:37:49 178.47.5.206
yandexMap: {"statusCode":403,"error":"Forbidden","message":"Invalid key"}
## wa-system/file/waNet.class.php(206)
#0 wa-system/file/waNet.class.php(190): waNet->onQueryComplete('{"statusCode":4...')

2020-04-12 16:06:53 213.87.163.16
yandexMap: {"statusCode":403,"error":"Forbidden","message":"Invalid key"}
## wa-system/file/waNet.class.php(206)
#0 wa-system/file/waNet.class.php(190): waNet->onQueryComplete('{"statusCode":4...')

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

Это Яндекс косячит или где-то в другом месте причина? Кто-нибудь сталкивался с таким, чтобы подтвердить или опровергнуть? Вдруг это вообще было временное явление?

Взаимодействие с API осуществляется по адресу:

https://fleet-api.taxi.yandex.net

Каналом передачи данных служит защищённый протокол HTTPS.
Для представления данных в теле запроса и ответа используется формат JSON.

Общие заголовки для запросов в API:

Заголовок Описание
X-Client-ID Идентификатор клиента
X-API-Key Секретный API-ключ
Accept-Language Язык ответа (по умолчанию en)

В API используются следующие коды ответа:

Код Причина Описание
200 OK Запрос выполнен успешно
400 BadRequest Некорректные параметры запроса
401 Unauthorized Отсутствуют параметры авторизации
403 Forbidden Не достаточно прав для выполнения запроса
404 NotFound Ресурс не найден
409 Conflict Операция не может быть выполнена из-за конфликта изменений
429 TooManyRequests Превышены ограничения (см. ограничения ниже)
500 InternalServerError Внутренняя ошибка сервера

В API регламентирован формат неуспешных ответов на запрос:

{
  "code": "необязательное поле с машиночитаемым кодом ошибки",
  "message": "обязательное поле с человекочитаемым сообщением об ошибке"
}

При использовании API действуют ограничения:

  • Не более 2 запросов в секунду

  • Не более 5000 запросов в час

При превышении ограничений возвращается код 429 Too Many Requests.

Вопросы относительно взаимодействия с API можно задать по адресу api-taxi@yandex-team.ru.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ятрогенная патология врачебные ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Яндекс маркет windows 10 произошла ошибка при запросе