心知天气 API 调用示例
请首先查看心知天气的文档来了解心知天气 API 的调用方式,以下是一些不同编程语言的示例代码,也欢迎给此项目提 PR 来添加更多不同语言的调用示例,同时也可以向心知天气申请以获得开发者认证。
代码示例
-
JavaScript
- 直接调用
- JSONP
-
Node.js
- 使用更安全的签名验证方式(荐)
- 心知官方 Node.js package(支持 Typescript)
-
Python
-
直接调用
- urllib
- requests
-
使用更安全的签名验证方式(荐)
-
-
PHP
- 使用更安全的签名验证方式(荐)
- PHP demo, contributed by open source community
-
Java
-
Swift4
-
Object-C
-
Common Lisp
- 使用更安全的签名验证方式(荐)
- cl-seniverse-api ( Lisp SDK )
-
Elixir
注意:所有代码示例仅做开发参考使用,不要在生产环境下暴露 key!生产环境下请通过后端进行签名验证。
常见问题
-
我在本地调试的时候,如何进行域名绑定?
本地调试时,请在 控制台 -> 产品管理 的对应产品页面将域名绑定填写为:
127.0.0.1
。若127.0.0.1
在本机无法访问,请注意是否开启了全局代理。 -
为什么我绑定了
127.0.0.1
但访问时报错(没有找到域名,或者报跨域请求的错误,常见于纯前端 API 调用时)?请通过
127.0.0.1
的链接,通过 jsonp 的形式访问,而不是localhost
,localhost
访问会跨域。请通过
127.0.0.1
的链接,通过 jsonp 的形式访问,而不是localhost
,localhost
访问会跨域。请通过
127.0.0.1
的链接,通过 jsonp 的形式访问,而不是localhost
,localhost
访问会跨域。 -
关于 API 调用问题
为了保证您账号的安全,不要纯前端进行 API 调用!仅仅通过前端调用会造成您的
uid
和key
暴露,可能会带来不必要的麻烦。推荐的调用方式有:- 后端进行 API 调用获取数据后交给前端渲染
- 或者后端构造 JSONP 形式的请求链接,交给前端调用
-
关于 API 调用失败的问题
可能的原因有:
ttl
有效时间过短key
加密后的结果没有通过 Base64 编码- 在构造签名的时候,参数的顺序不正确。参与签名的参数有 UNIX 时间戳
ts
,签名失效时间ttl
(单位为秒,缺省为 1800,可选)和公钥uid
。请确保:- 参数按照键字典升序排列,例如
ts=1443079775&ttl=300&uid=U123456789
或者ts=1443079775&uid=U123456789
ts
和ttl
的单位都是秒
- 参数按照键字典升序排列,例如
- Last but not least,请将 demo 内的 API key 等参数替换为自己账户的数据
其他第三方相关项目
- JavaScript
- seniverse-jsonp
Contributors
muyinliu |
mokeyjay |
Liu Cheng a.k.a MaYi |
dazheng_wu |
hewieZ |
weishuaigithub |
Eric SHI |
ecmadao |
Maples7 |