使用OpenWeatherMap API会出现401错误

时间:2015-10-12 23:48:23

标签: python weather-api openweathermap

我正在尝试用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()

3 个答案:

答案 0 :(得分:10)

通过告诉您需要首先注册API密钥来打开docs

  

要访问API,您需要注册API key

由于您的网址不包含密钥,因此该网站会告诉您未经授权。按照说明获取密钥,然后将其添加到查询参数中。

http://api.openweathermap.org/data/2.5/forecast/daily?APPID=12345&q=...

答案 1 :(得分:0)

未在您的url中设置api密钥!您必须先在https://openweathermap.org/中注册,然后再在您的个人帐户中获取api密钥,然后再执行以下操作: http://api.openweathermap.org/data/2.5/weather?q={city}&appid=YOUR_API_KEY_HERE&units=metric

用{YOUR_API_KEY_HERE}替换您的apikey代码 然后运行您的应用。

答案 2 :(得分:0)

错误: 无效的API密钥。有关更多信息,请参见http://openweathermap.org/faq#error401

API调用响应为401错误: 在以下情况下,您会收到错误401:

这是发现问题的一些步骤。

1)检查API密钥是否已激活

某些API服务在仪表板中提供关键信息,无论其激活,过期等(openWeatherMap否)。 验证您的密钥是否有效'从浏览器进行API调用' api.openweathermap.org/data/2.5/weather?q=peshawar&appid=API_key

用您自己的密钥替换API_key,如果成功获取数据,则您的密钥被激活,否则请等待几个小时以激活密钥。

2)检查.env的拼写和语法

.env是用于在服务器端代码中隐藏凭据(例如API_KEY)的文件。 确保您的.env文件变量使用正确的语法,即 NAME = VALUE

API_KEY=djgkv43439d90bkckcs

没有分号,引号等

3)检查请求网址

检查将在其中进行API调用的请求网址,请确保

  • 它没有空格,花括号等
  • 根据URL编码正确
  • 根据API文档进行纠正

4)使用dotenv进行调试:

要知道您的dotenv软件包是否正确解析了API密钥,请使用以下代码

const result = dotenv.config()

if (result.error) {
  throw result.error
} 
console.log(result.parsed)

此代码检查是否正在解析.env文件变量,如果已解析.env文件变量,它将打印API_KEY值,否则将打印解析时发生的错误。

希望它会有所帮助:)