我正在尝试以 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()
错误: API 密钥无效。请参阅 http://openweathermap.org/faq#error401 了解更多信息
API 调用响应 401 错误: 在以下情况下,您可能会收到错误 401:
这里有一些发现问题的步骤。
一些 API 服务在仪表板中提供关键信息,无论其是否已激活、是否已过期等,而 openWeatherMap 则不会。 验证您的密钥是否正常工作“从浏览器进行 API 调用”
api.openweathermap.org/data/2.5/weather?q=peshawar&appid=API_key
将 API_key 替换为您自己的密钥,如果成功获取数据则您的密钥已激活,否则请等待几个小时才能激活密钥。
.env 是用于在服务器端代码中隐藏 API_KEY 等凭据的文件。 确保您的 .env 文件变量使用正确的语法,即 名称=值
API_KEY=djgkv43439d90bkckcs
没有分号、引号等
检查将进行 API 调用的请求 url,确保
要了解 dotenv 包是否正确解析 API 密钥,请使用以下代码
const result = dotenv.config()
if (result.error) {
throw result.error
}
console.log(result.parsed)
此代码检查 .env 文件变量是否正在解析,如果已解析,它将打印 API_KEY 值,否则将打印解析时发生的错误。
希望有帮助:)
我也遇到了同样的问题,我刚刚在开放天气地图上创建了一个帐户,并验证了电子邮件,尝试使用几个不同的网址加载api,但他们回复 401 ,未找到api密钥。
解决方案:1小时后全部开始工作,所以原因是激活需要1个多小时。
对于我正在帮助的一名毕业生,他有一个正确的 api 密钥并且处于活动状态,但是当没有给出内容类型时,api 错误地出现 401
很简单,只需添加一个内容类型:application/json,嘿,API 很快就开始工作了
卷曲命令
curl --location \
--request GET \
'https://api.openweathermap.org/data/2.5/forecast?lat=55&lon=-3&appid=xxx' \
--header 'Content-Type: application/json'
您的网址中未设置 api 密钥!首先,您必须在 https://openweathermap.org/ 中注册,然后在您的个人帐户中获取 api 密钥,然后执行以下操作: http://api.openweathermap.org/data/2.5/weather?q={city}&appid=YOUR_API_KEY_HERE&units=metric
将您的 apikey 代码替换为 {YOUR_API_KEY_HERE} 然后运行你的应用程序。
注册后需要验证邮箱。
在网站 API 文档上,它告诉您使用以下 URL 连接到 API: “https://api.openweathermap.org/data/3.0/onecall?lat=$latitude&lon=$longitude&appid=$apiKey”
但是,在验证电子邮件后,您将收到另一封电子邮件,通知您 API 密钥以及 API 调用 URL 的示例: “https://api.openweathermap.org/data/2.5/weather?lat=$latitude&lon=$longitude&APPID=$apiKey”
我正在免费订阅,并多次尝试第一个 URL,但访问始终被拒绝。它只有在我使用第二个 URL(在第二封电子邮件中提供给我)后才开始工作。
有时也会因为url中的参数命名错误而发生。
url = f"https://api.openweathermap.org/data/2.5/forecast?lat={latitude}&lon={longitude}&appid={api_key}"
就我而言,我正在就地“预测”进行一次调用。这种愚蠢的错误也时有发生。谢谢。
您必须通过注册 openweathermap 并确认您的电子邮件来获得有效的 API 密钥,并确保您符合他们最新的 API。
通过注册将有效的 API 密钥附加到您的 URL 上并使用
&appid=<yourkey>
来应用
确保 REST API URL 符合其当前的 API 规范(位于 https://openweathermap.org/current#geo。
)他们最近进行了重构,并从 API 中删除了一些部分,例如“daily”,因此如果添加也会导致错误 401,因此请将其删除。
因此将您的网址更改为:
url = "http://api.openweathermap.org/data/2.5/forecast?q=London&cnt=10&mode=json&units=metric&appid=<yourkey>