有哪些免费开放且收录城市较完整的天气 API 接口?天气预报查询接口
一、使用天气预报接口并生成程序代码
根据聚合数据的使用说明,我们可以利用接口调试工具调试接口,我们这里利用ApiPost测试。
可以看到请求成功后的json格式如下:
{ "reason": "查询成功!", "result": { "city": "郑州", "realtime": { "temperature": "24", "humidity": "100", "info": "小雨", "wid": "07", "direct": "东北风", "power": "2级", "aqi": "32" }, "future": [ { "date": "2021-07-23", "temperature": "23/28℃", "weather": "小雨转阴", "wid": { "day": "07", "night": "02" }, "direct": "东风转北风" }, { "date": "2021-07-24", "temperature": "24/31℃", "weather": "小雨转多云", "wid": { "day": "07", "night": "01" }, "direct": "东北风转东风" }, { "date": "2021-07-25", "temperature": "23/31℃", "weather": "多云", "wid": { "day": "01", "night": "01" }, "direct": "东风转东南风" }, { "date": "2021-07-26", "temperature": "24/31℃", "weather": "小雨", "wid": { "day": "07", "night": "07" }, "direct": "东北风" }, { "date": "2021-07-27", "temperature": "23/31℃", "weather": "小雨转晴", "wid": { "day": "07", "night": "00" }, "direct": "东北风转南风" } ] }, "error_code": 0 }
到这一步,我们已经拿到了未来7天的天气数据。
二、利用nodemailer在NodeJS中发送邮件
nodeJS的nodemailer用于发送邮件,很好用。通过以下命令安装即可使用:
npm install nodemailer
以下是我写的一个发送邮件的函数,其中邮箱账号和授权码可以在对应的邮箱服务商处获取。
/** * nodeJS 发送邮件 * * */ function sendEmail(text){ let nodemailer = require('nodemailer'); let transporter = nodemailer.createTransport({ service:"126", // 邮箱 secure:true, // 安全的发送模式 auth:{ user:"be***er@126.com", // 发件人邮箱 pass:"MLQ***PYU"// 授权码,在邮件服务商处获取,126邮箱的获取地址为:https://help.mail.163.com/faq.do?m=list&categoryID=197 } }) let mailOptions = { from:"be***er@126.com", // 发件人邮箱,同上面的发件人邮箱保持一致就行 to:"3257132998@qq.com", // 收件人邮箱,也就是实时接收天气预报的邮箱 subject:"天气实时监控系统", // 邮件主题(标题) text:text // 邮件征文 } transporter.sendMail(mailOptions,(err,data) => { if(err){ console.log(err); res.json({status:400,msg:"send fail....."}) }else{ console.log(data); res.json({status:200,msg:"邮件发送成功....."}) } }) } // 测试发邮件 sendEmail('下雨了')
全国天气预报接口文档说明
全国天气预报接口地址
https://api.ip138.com/weather/
https://api.ip138.com/weather/
示例1(Linux命令行下执行)
请求方式
get
参数说明:
1. code string 行政区划代码 (可选)
2. ip string iP地址 (可选,默认为请求iP,仅当用户没有提供行政区划代码时有效)
3. callback string 回调函数(可选,默认为空)
4. token string 购买服务后会提供(必填)
5. type int 查询类型 1:今日天气 7:一周天气 (默认今日天气)
6. style int 天气icon样式 1|2|3
样式1 | 样式2 | 样式3 |
---|---|---|
curl "https://api.ip138.com/weather/?code=350229&callback=find&type=1" -H "token:cc87f3c77747bccbaaee35006da1ebb65e0bad57"
示例2
参数说明:
1. code string 行政区划代码 (可选)
2. ip string iP地址 (可选,默认为请求iP,仅当用户没有提供行政区划代码时有效)
3. callback string 回调函数(可选,默认为空)
4. token string 购买服务后会提供(必填)
5. type int 查询类型 1:今日天气 7:一周天气 (默认今日天气)
6. style int 天气icon样式 1|2|3
https://api.ip138.com/weather/?code=350229&type=1&callback=find&token=cc87f3c77747bccbaaee35006da1ebb65e0bad57
示例3(js引入推荐方案)
参数说明:
1. code string 行政区划代码 (可选)
2. ip string iP地址 (可选,默认为请求iP,仅当用户没有提供行政区划代码时有效)
3. callback string 回调函数 当前参数仅为jsonp格式数据提供(可选,默认为空)
4. type int 查询类型 1:今日天气 7:一周天气 (默认今日天气)
5. style int 天气icon样式 1|2|3
6. time string 时间戳(必填)
7. oid string 购买服务后提供(必填)
8. mid string 购买服务后提供(必填)
9. sign string 签名验证 (签名算法:md5("time=" + time + "&token=" + token))(必填)
https://api.ip138.com/weather/?code=350229&callback=find&time=20170102&oid={oid}&mid={mid}&sign=签名算法
选择获取行政区划代码: 110101
行政区划代码列表说明
JSONP返回示例
说明:ret 值为 ok 时 返回data查询结果数据 为err时返回msg错误信息
{ "ret": "ok", // ret 值为 ok 时 返回 data 数据 为err时返回msg数据 "code": "350103", // 行政区划代码 "province":"福建省", "city":"福州市", "area":"台江区", "data": [ time:"14:20", //更新时间 dayIcon:"http://p.abcache.com/ip138/image/tianqi1/d00.png", //天气图标 dayWeather:"晴转多云", //白天天气 dayTemp:"18", //白天温度 dayWind:"微风", //白天风力 "nightIcon":"http://p.abcache.com/ip138/image/tianqi1/n01.png", //天气图标 nightWeather:"中度霾转多云", //夜晚天气 nightTemp:"9", //夜晚温度 nightWind:"微风", //夜晚风力 temp"9", //实时温度 "Icon":"http://p.abcache.com/ip138/image/tianqi1/d00.png" //天气图标 weather:"多云", //实时天气 wind:"北风1级", //实时风力 humidity:"82" //湿度 pm25:11 //pm ] }
查询token使用情况
URL
https://api.ip138.com/status/
请求方式
get
参数
1. token `string`
示例
https://api.ip138.com/status/?token=cc87f3c77747bccbaaee35006da1ebb65e0bad57
响应
{ "ret":"ok", "data":{ "reqs":10, //当前小时请求数 "hour":3000, //当前小时购买次数 "package":19767 //配额次数 } }
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~