#rest #curl #here-api #here-maps-rest
#rest #curl #here-api #here-maps-rest
Вопрос:
Это мой запрос cURL
curl https://geocode.search.hereapi.com/v1/geocode?q=5 Rue Daunou, 75000 Paris, France -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXX"
Это ответ
{"error":"Unauthorized","error_description":"Token Validation Failure - unrecognized kid null"}
Я не уверен, что происходит. Я пробовал разные ключи доступа. Я сгенерировал новые. Но продолжает получать ту же ошибку.
Комментарии:
1. что это за api?
2. @Yadu это rest API.
3. пожалуйста, удалите документацию
4. Вы уверены, что ваш токен правильный? Если я выполню тот же вызов, но с моим apikey в URL, он будет работать нормально.
Ответ №1:
«Идентификатор ключа доступа» — это не совсем тот токен, который вам нужно отправить в заголовке авторизации, поэтому вы получаете «Сбой проверки токена».
Однако «Идентификатор ключа доступа» является одним из параметров учетных данных, который вам нужен для генерации токенов OAuth, другим параметром является «Секрет ключа доступа».
Если вы еще не сохранили секрет ключа доступа, перейдите в пространство управления проектами вашей учетной записи ЗДЕСЬ и обязательно загрузите файл учетных данных:
В файле учетных данных обратите внимание на последние три строки:
here.access.key.id = redacted
here.access.key.secret = redacted_redacted_redacted
here.token.endpoint.url = https://account.api.here.com/oauth2/token
Затем мы можем использовать Postman для генерации токенов OAuth:
- Откройте Postman и создайте новый запрос.
- Сообщение о методе, url:https://account.api.here.com/oauth2/token
- Перейдите на вкладку Auth и выберите:
- Тип: OAuth 1.0
- Добавьте данные аутентификации в заголовки запроса (вероятно, выбор по умолчанию)
- Метод подписи: HMAC-SHA256
- Потребительский ключ: введите
here.access.key.id
значение - Секрет пользователя: введите
here.access.key.secret
значение
- Перейдите на вкладку Body и выберите:
x-www-form-urlencoded
- Ключ:
grant_type
, Значение:client_credentials
- Отправьте запрос. Вы должны получить токен доступа. Это должно работать с вашим запросом curl.
Вкладка Auth
Вкладка Body
Примечание
Для записи также работает следующее, не использующее OAuth, но «ключ API», который также можно найти в разделе REST:
curl https://geocode.search.hereapi.com/v1/geocode?apiKey=<REST-API-KEY>amp;q=5 Rue Daunou, 75000 Paris, France
Однако ссылка на Geocode API не документирует аутентификацию apiKey, в отличие от других HERE API, например, маршрутизации, и я бы не рекомендовал это, кроме как для случайных экспериментов с запросами curl.
Ответ №2:
Я нашел очень простое решение. Я удалил заголовок авторизации и добавил параметр запроса «apiKey» к своему URL.
Например:
https://revgeocode.search.hereapi.com/v1/revgeocode?48.2181679,16.3899064amp;lang=en-USamp;apiKey={TOKEN}