Я пытаюсь вызвать вызов API погоды Yahoo
https://developer.yahoo.com/weather/
https://developer.yahoo.com/weather/documentation.html
Я получил свои ключи API, и мое приложение было одобрено или занесено в белый список.
Однако я не могу заставить свой вызов curl работать с аутентификацией OAuth. Сначала я попытался позвонить Почтальону, я был авторизован, но результаты оказались пустыми. Согласно поддержке «Использование oauth1 в почтальоне может привести к прерывистой ошибке.»
Итак, я пытаюсь сделать вызов curl следующим образом:
curl --request GET --url 'https://weather-ydn-yql.media.yahoo.com/forecastrss?location=sunnyvale,ca' --header 'Authorization: OAuth oauth_consumer_key="(MY CLIENT ID)",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1547215497",oauth_nonce="kIDevCJSTBi",oauth_version="1.0",oauth_signature="(MY GENERATED OAUTH SIGNATURE)"' --header 'Yahoo-App-Id: "(MY APP ID)"'
Но я вернул это:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><yahoo:error xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" xml:lang="en-US" yahoo:uri="http://yahoo.com"><yahoo:description>Please provide valid credentials. OAuth oauth_problem="OST_OAUTH_SIGNATURE_INVALID_ERROR", realm="yahooapis.com"</yahoo:description><yahoo:detail>Please provide valid credentials. OAuth oauth_problem="OST_OAUTH_SIGNATURE_INVALID_ERROR", realm="yahooapis.com"</yahoo:detail></yahoo:error>
Это со страницы Yahoo Weather Developer:
GET / forecastrss? Location = sunnyvale, приблизительно HTTP / 1.1 Хост:
weather-ydn-yql.media.yahoo.com Yahoo-App-Id: YOUR_APP_ID
Авторизация: OAuth
oauth_consumer_key = "YOUR_CONSUMER_KEY", oauth_signature_method = "HMAC-SHA1", oauth_timestamp = "YOUR_TIMESTAMP", oauth_nonce = "YOUR_NONCE", oauth_version = "1.0", кэш-контроль * -URATE = YOUR_OURE = YOUR_OURE = YOUR_OURE: oAUT_OUT_
Что я делаю не так? Это так расстраивает.