最近天气时不时会降温,经常用手机查看天气,感觉好不方便,今天决定把天气的功能添加到“自定义桌面”来,为了免费获取天气数据,竟然花了差不多一天的时间来制作完成。(假如一天人工费几百来算,这样真的值得吗?非常值得!为未来完善功能添砖加瓦打好基础!)
添加天气的功能是怎么实现的呢?
数据从哪里来?数据必须真实,不真实的话那还有什么意义?于是上网搜索了一下,什么网站可以免费提供天气的信息?有很多的网站,最后我选择了“和风天气”,它可以提供免费的接口数据,它的官网是“https://dev.qweather.com/”;首先需要注册(https://id.qweather.com/#/register?redirect=https%3A%2F%2Fconsole.qweather.com)
注册成功以后就登录进来,选择“开发服务控制台”
选择“项目管理”
之后选择“创建项目”
之后填写“项目名称”, 选择“免费订阅”(由于我已经使用了,所以显示“剩余0”),再选择“创建”;
选择“项目管理”,选择刚刚创建的项目的编辑,
再选择“创建凭证”;
创建凭证时,两种认证方式都要创建;“API KEY”比较简单,输入凭证名称,点击创建即可;
"JSON Web Token"比较麻烦,它需要上传公钥,再点击创建;
公钥是怎么生成的呢?根据官网信息(https://dev.qweather.com/docs/authentication/jwt/)的介绍,需要生成公钥和私钥;通过这两行代码来生成“openssl genpkey -algorithm ED25519 -out ed25519-private.pem”和"openssl pkey -pubout -in ed25519-private.pem > ed25519-public.pem";
用什么工具来执行这两行代码也是要注意的,OpenSSL 这个工具需要安装,我用代码来安装结果失败了,于是我去官网(https://slproweb.com/products/Win32OpenSSL.html)下载了一个安装包;安装完成后需要注意,在环境变量中需要配置刚才的安装路径;环境变量配置如下(注意bin这个路径):
之后在以管理员的方式运行PowerShell(win+S, 输入PowerShell, 右击PowerShell,以管理员身份运行,
然后进入到刚才的安装路径(cd "安装的路劲"):
最后分别输入代码“ openssl genpkey -algorithm ED25519 -out ed25519-private.pem”回车和“openssl pkey -pubout -in ed25519-private.pem > ed25519-public.pem”再回车;
安装的路径下会生成两个文件(如下):
公钥右击(ed25519-public.pem),用记事本打开,然后全选,把信息全部复制下来;
回到刚才申请token的网址,先输入“凭证名称”,再把刚才复制的信息粘贴到第二个方框里,再选择“创建”;
如此凭证创建完成:
最后调用时,调用下面的网址,城市编号输入你想要的城市,APIKEY和JWT替换为刚才你分别申请得到的两个key;https://devapi.qweather.com/v7/weather/now?location=城市编号&key=APIKEY&Authentication=Bearer JWT;
如此,天气数据的获取方式就这么获取完成了!