心知天气API如何调用与json数据如何显示

来源:互联网 发布:大数据项目调研内容 编辑:程序博客网 时间:2024/06/06 17:57

心知天气官网:https://www.seniverse.com/doc

首先需要注册获得密钥和ID.

因为我不是会员,这里就简单介绍下,怎么调用并显示。

Json数据如下图所示:

{

results: [

{

location: {

id: "WX4FBXXFKE4F",

name: "北京",

country: "CN",

path: "北京,北京,中国",

timezone: "Asia/Shanghai",

timezone_offset: "+08:00"

},

now: {

text: "多云",

code: "4",

temperature: "35"

},

last_update: "2017-05-20T14:50:00+08:00"

}

]

}

功能比较简单,输入界面

点击weather按钮

 

这个只是我再做demo学习这个api用的例子。最后我把这个功能应用到我的网页中,是这样的。

 

下面我附上demo的代码,你们对这个调用过程清楚了可以自己去设置界面。有时候虽然功能很lou界面十分美观,也会变得高大尚的。

 

百度云盘:链接:http://pan.baidu.com/s/1o7Rb9Bc

密码:zaig

 资源下载页:http://download.csdn.net/detail/qq_36305327/9847616

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Seniverse API Jsonp Test Page</title>

<script type="text/javascript" src="js/jquery.js"></script>

//下面的代码是加密使用的,大家可以到我的百度云盘下载或者我的CSDN上传文件下载

<script src="src/core.js"></script>

<script src="src/cipher-core.js"></script>

<script src="src/enc-base64.js"></script>

<script src="src/hmac.js"></script>

<script src="src/sha1.js"></script>

</head>

<body>

 

<div id="content" style="background:blue;height:300px;">

<input type="text" class="form-control" id="inputcity" aria-describedby="inputGroupSuccess3Status">

<button type="button" id="queryweather" onclick="weather()">Weather</button>

</div>

<script>

/******** 本示例仅做开发参考使用,不建议在生产环境下暴露 key! ********/

var UID = "U6F8E3F8AD"; // 测试用 用户ID,请更换成您自己的用户ID

var KEY = "tff0na3ui2ana33x"; // 测试用key,请更换成您自己的 Key

var API = "https://api.seniverse.com/v3/weather/now.json"; // 获取天气实况

var LOCATION = "武汉";

// 除拼音外,还可以使用 v3 id、汉语等形式

// 获取当前时间戳

var ts = Math.floor((new Date()).getTime() / 1000);

// 构造验证参数字符串

var str = "ts=" + ts + "&uid=" + UID;

 

var result = CryptoJS.HmacSHA1(str,KEY);

var sig = result.toString(CryptoJS.enc.Base64);

sig = encodeURI(sig);

str = str + "&sig=" + sig;

 

 

var jsonpCallback = function(data) {

 

var obj = document.getElementById('content');

var weather = data.results[0];

var text = [];

//控制输入的内容

text.push("Location: " + weather.location.path);

text.push("Weather: " + weather.now.text);

text.push("Temperature: " + weather.now.temperature);

text.push("UpdateTime: " + weather.last_update);

 

obj.innerText = text.join("\n");

}

 

function weather(){

var LOCATION = document.getElementById('inputcity').value;

alert(LOCATION);

var url = API + "?location=" + LOCATION + "&" + str + "&callback=jsonpCallback";

// 向 HTML 中动态插入 script 标签,通过 JSONP 的方式进行调用

var newScript = document.createElement('script');

newScript.type = 'text/javascript';

newScript.src = url;

$('body').append(newScript);

}

 

 

</script>

</body>

</html>

如有任何意见和问题,可以到我的网站www.shaofee.com给我留言。如果你有方法可以留言,我必回访。

阅读全文
8 1
原创粉丝点击