免费天气预报接口

关于免费的天气预报接口其实有很多,本文主要是以知心天气为例

知心天气:https://www.seniverse.com/

一.注册知心天气账号,完成后进入“产品--天气数据API”,找到我的信息,记住我的API密钥和我的用户ID(后面有用的)

20180509161852462

二.创建一个js文件命名为weather.js

var UID = "xxxxxx"; // 用户ID
var KEY = "xxxxxxx"; // 用户key
var API = "http://api.seniverse.com/v3/weather/now.json"; // 获取天气实况
var LOCATION = "wuhan"; // 除拼音外,还可以使用 v3 id、汉语等形式
// 获取当前时间戳
var ts = Math.floor((new Date()).getTime() / 1000);
// 构造验证参数字符串
var str = "ts=" + ts + "&uid=" + UID;
// 使用 HMAC-SHA1 方式,以 API 密钥(key)对上一步生成的参数字符串(raw)进行加密
// 并将加密结果用 base64 编码,并做一个 urlencode,得到签名 sig
var sig = CryptoJS.HmacSHA1(str, KEY).toString(CryptoJS.enc.Base64);
sig = encodeURIComponent(sig);
str = str + "&sig=" + sig;
// 构造最终请求的 url
var url = API + "?location=" + LOCATION + "&" + str + "&callback=getWeather";
// 向 HTML 中动态插入 script 标签,通过 JSONP 的方式进行调用
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = url;
$('body').append(newScript);

说明:

1.UID是上面提到的我的用户ID;2.KEY是我的API密钥;3.LOCATION是地区可以更改为你需要的地区(本文中我写的是武汉);4.sig变量内有一个CryptoJS,需要下载,下载地址是:CryptoJs下载5.变量url中的callback=getweather是jspon回调函数,在后面调用接口的时候有用;6.此js最终是生成一个经过签名后script标签,需要添加到页面中。

三.绑定域名

心知天气API增加了JSONP的支持,可以在网页中直接调用API接口,而不通过服务器中转。JSONP方式调用必须绑定域名,并使用签名验证方式。

在知心天气中点击我的账号,找到我的服务,修改绑定域名

20180509170315141

四.html代码示例(此代码只做示例)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>天气预报</title>
    <script src="js/jquery-2.0.3.js"></script>
    <script src="js/hmac-sha1.js"></script>
</head>
<body>
<div >
    <script>
        /*天气预报接口*/
        function getWeather(data) {
            var weatherData = data.results[0];
            var weather = weatherData.now.text;
            temperature = weatherData.now.temperature;
        }
    </script>
</div>
<script src="js/weather.js"> </script>
</body>
</html>

说明:这里需要导入jquery.js ,hmac_sha1.js,weather.js 三个文件

hmac_sha1.js就是上面CryptoJS,weather.js就是步骤2中的js文件,页面加载会返回

getWeather({
	"results": [{
		"location": {
			"id": "WT3Q0FW9ZJ3Q",
			"name": "武汉",
			"country": "CN",
			"path": "武汉,武汉,湖北,中国",
			"timezone": "Asia/Shanghai",
			"timezone_offset": "+08:00"
		},
		"now": {
			"text": "多云",
			"code": "4",
			"temperature": "27"
		},
		"last_update": "2018-05-09T16:35:00+08:00"
	}]
});

返回的结果会调用html中的getWeather()方法,需要处理天气接口数据在getWeather中进行处理即可。

 

根据提供的引用内容,天气预报API免费接口的使用步骤如下: 1. 首先,需要免费获取历史天气查询API的AppKey。\[2\] 2. 将获取到的AppKey替换示例代码中的"appKey"。\[3\] 3. 执行脚本,即可进行天气预报的查询。\[3\] 示例代码中的`ApiRequest`类是一个封装了天气查询功能的类,其中的`verify`方法用于发送请求并获取天气信息。你可以根据自己的需求进行开发和调整。\[3\] 需要注意的是,示例代码中的`city_id`参数用于指定城市的ID,`weather_date`参数用于指定查询的日期。日期的格式为"YYYY-MM-DD",且不能大于等于今日日期。\[3\] 以上是关于天气预报API免费接口的使用方法。希望对你有帮助! #### 引用[.reference_title] - *1* [免费天气预报接口](https://blog.csdn.net/weichangIT/article/details/80255206)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [免费天气预报查询 API、历史天气查询 API 接口使用示例【源码可用】](https://blog.csdn.net/JAVASOFT008/article/details/130812391)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值