使用 OpenWeatherMap API 给出 401 错误
Using OpenWeatherMap API gives 401 error
我正在尝试获取 JSON 伦敦的天气数据,但我正在获取 HTTPError: HTTP Error 401: Unauthorized
。如何让 API 工作?
import urllib2
url = "http://api.openweathermap.org/data/2.5/forecast/daily?q=London&cnt=10&mode=json&units=metric"
response = urllib2.urlopen(url).read()
docs 打开时告诉您需要先注册一个 API 密钥。
To access the API you need to sign up for an API key
由于您的 url 不包含密钥,该网站会告诉您您未获得授权。按照说明获取密钥,然后将其添加到查询参数中。
http://api.openweathermap.org/data/2.5/forecast/daily?APPID=12345&q=...
您的 url 中未设置 api 键!首先,您必须在 https://openweathermap.org/ 中注册,然后在您的个人帐户中获取 api 密钥,然后这样做:
http://api.openweathermap.org/data/2.5/weather?q={city}&appid=YOUR_API_KEY_HERE&units=metric
将您的api密钥代码替换为{YOUR_API_KEY_HERE}
然后 运行 您的应用。
错误:
无效的 API 密钥。请参阅 http://openweathermap.org/faq#error401 了解更多信息
API 调用响应 401 错误:
在以下情况下,您可能会收到错误 401:
- 您没有在 API 请求中指定您的 API key。
- 您的 API 密钥尚未激活。在接下来的几个小时内,它将被激活并可以使用。
- 您在 API 请求中使用了错误的 API 键。请检查 personal account 中的 API 键。
- 您有 免费 订阅并尝试访问我们的付费服务(例如,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])。
以下是查找问题的一些步骤。
1) 检查API键是否激活
一些 API 服务在仪表板中提供关键信息,无论其是否激活、过期等。openWeatherMap 不提供。
验证您的密钥是否有效 'MAKE API CALL FROM BROWSER'
api.openweathermap.org/data/2.5/weather?q=peshawar&appid=API_key
将API_key替换成你自己的key,如果你成功获取数据则你的key被激活,否则等待几个小时激活。
2) 检查 .env 中的拼写错误和语法
.env 是用于在服务器端代码中隐藏凭证(例如 API_KEY)的文件。
确保您的 .env 文件变量使用正确的语法,即
名称=值
API_KEY=djgkv43439d90bkckcs
没有分号、引号等
3) 检查请求 URL
检查请求 url 将进行 API 调用的位置,确保
- 它没有空格、大括号等
- 根据URL编码正确
- 根据 API 文档更正
4) 使用 dotenv 调试:
要知道你的 dotenv 包是否正确解析 API 键使用下面的代码
const result = dotenv.config()
if (result.error) {
throw result.error
}
console.log(result.parsed)
此代码检查 .env 文件变量是否正在解析,如果已解析,它将打印 API_KEY 值,否则将打印解析时发生的错误。
希望对您有所帮助:)
注册后,需要验证邮箱。
我正在尝试获取 JSON 伦敦的天气数据,但我正在获取 HTTPError: HTTP Error 401: Unauthorized
。如何让 API 工作?
import urllib2
url = "http://api.openweathermap.org/data/2.5/forecast/daily?q=London&cnt=10&mode=json&units=metric"
response = urllib2.urlopen(url).read()
docs 打开时告诉您需要先注册一个 API 密钥。
To access the API you need to sign up for an API key
由于您的 url 不包含密钥,该网站会告诉您您未获得授权。按照说明获取密钥,然后将其添加到查询参数中。
http://api.openweathermap.org/data/2.5/forecast/daily?APPID=12345&q=...
您的 url 中未设置 api 键!首先,您必须在 https://openweathermap.org/ 中注册,然后在您的个人帐户中获取 api 密钥,然后这样做: http://api.openweathermap.org/data/2.5/weather?q={city}&appid=YOUR_API_KEY_HERE&units=metric
将您的api密钥代码替换为{YOUR_API_KEY_HERE} 然后 运行 您的应用。
错误: 无效的 API 密钥。请参阅 http://openweathermap.org/faq#error401 了解更多信息
API 调用响应 401 错误: 在以下情况下,您可能会收到错误 401:
- 您没有在 API 请求中指定您的 API key。
- 您的 API 密钥尚未激活。在接下来的几个小时内,它将被激活并可以使用。
- 您在 API 请求中使用了错误的 API 键。请检查 personal account 中的 API 键。
- 您有 免费 订阅并尝试访问我们的付费服务(例如,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])。
以下是查找问题的一些步骤。
1) 检查API键是否激活
一些 API 服务在仪表板中提供关键信息,无论其是否激活、过期等。openWeatherMap 不提供。
验证您的密钥是否有效 'MAKE API CALL FROM BROWSER'
api.openweathermap.org/data/2.5/weather?q=peshawar&appid=API_key
将API_key替换成你自己的key,如果你成功获取数据则你的key被激活,否则等待几个小时激活。
2) 检查 .env 中的拼写错误和语法
.env 是用于在服务器端代码中隐藏凭证(例如 API_KEY)的文件。 确保您的 .env 文件变量使用正确的语法,即 名称=值
API_KEY=djgkv43439d90bkckcs
没有分号、引号等
3) 检查请求 URL
检查请求 url 将进行 API 调用的位置,确保
- 它没有空格、大括号等
- 根据URL编码正确
- 根据 API 文档更正
4) 使用 dotenv 调试:
要知道你的 dotenv 包是否正确解析 API 键使用下面的代码
const result = dotenv.config()
if (result.error) {
throw result.error
}
console.log(result.parsed)
此代码检查 .env 文件变量是否正在解析,如果已解析,它将打印 API_KEY 值,否则将打印解析时发生的错误。
希望对您有所帮助:)
注册后,需要验证邮箱。