Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seniverse/seniverse-api-demos
心知天气 API 产品使用调用示例
https://github.com/seniverse/seniverse-api-demos
api demo jsonp seniverse thinkpage
Last synced: 3 days ago
JSON representation
心知天气 API 产品使用调用示例
- Host: GitHub
- URL: https://github.com/seniverse/seniverse-api-demos
- Owner: seniverse
- Created: 2017-01-11T10:31:44.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2021-04-22T01:34:32.000Z (almost 4 years ago)
- Last Synced: 2025-01-21T20:07:16.603Z (11 days ago)
- Topics: api, demo, jsonp, seniverse, thinkpage
- Language: Objective-C
- Homepage: https://docs.seniverse.com/
- Size: 175 KB
- Stars: 240
- Watchers: 16
- Forks: 192
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 心知天气 API 调用示例
[![All Contributors](https://img.shields.io/badge/all_contributors-8-orange.svg?style=flat-square)](#contributors)
请首先查看心知天气的[文档](https://docs.seniverse.com)来了解心知天气 API 的调用方式,以下是一些不同编程语言的示例代码,也欢迎给此项目提 PR 来添加更多不同语言的调用示例,同时也可以向心知天气申请以获得[开发者认证](https://blog.seniverse.com/2290)。
## 代码示例
- [JavaScript](./javascript)
- [直接调用](./javascript/index.html)
- [JSONP](./javascript/jsonp.html)- [Node.js](./nodejs)
- [使用更安全的签名验证方式(荐)](./nodejs/lib/api.js)
- [心知官方 Node.js package(支持 Typescript)](https://github.com/seniverse/seniverse-api)- [Python](./python)
- 直接调用
- [urllib](./python/demo-urllib.py)
- [requests](./python/demo-requests.py)- [使用更安全的签名验证方式(荐)](./python/demo-jsonp.py)
- [PHP](./php)
- [使用更安全的签名验证方式(荐)](./php/demo-jsonp.php)
- [PHP demo, contributed by open source community](./php/demo.php)- [Java](./java)
- [Swift4](./swift)
- [Object-C](./oc)
- [Common Lisp](./common-lisp)
- [使用更安全的签名验证方式(荐)](./common-lisp/seniverse-demo.lisp)
- [cl-seniverse-api ( Lisp SDK )](https://github.com/muyinliu/cl-seniverse-api)- [Elixir](./elixir)
**注意**:所有代码示例仅做开发参考使用,不要在生产环境下暴露 key!生产环境下请通过后端进行签名验证。
## 常见问题
1. 我在本地调试的时候,如何进行域名绑定?
本地调试时,请在 [控制台 -> 产品管理](https://www.seniverse.com/account) 的对应产品页面将域名绑定填写为:`127.0.0.1`。若 `127.0.0.1` 在本机无法访问,请注意是否开启了全局代理。
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` 访问会跨域。**
1. 关于 API 调用问题
为了保证您账号的安全,不要纯前端进行 API 调用!仅仅通过前端调用会造成您的 `uid` 和 `key` 暴露,可能会带来不必要的麻烦。推荐的调用方式有:
- 后端进行 API 调用获取数据后交给前端渲染
- 或者后端构造 JSONP 形式的请求链接,交给前端调用1. 关于 API 调用失败的问题
可能的原因有:
- `ttl` 有效时间过短
- `key` 加密后的结果没有通过 Base64 编码
- 在构造签名的时候,参数的顺序不正确。参与签名的参数有 UNIX 时间戳 `ts`,签名失效时间 `ttl`(单位为秒,缺省为 1800,可选)和公钥 `uid`。请确保:
1. 参数按照键字典升序排列,例如 `ts=1443079775&ttl=300&uid=U123456789` 或者 `ts=1443079775&uid=U123456789`
2. `ts` 和 `ttl` 的单位都是秒
- **Last but not least,请将 demo 内的 API key 等参数替换为自己账户的数据**## 其他第三方相关项目
- JavaScript
- [seniverse-jsonp](https://github.com/seanhuai/seniverse-jsonp)## Contributors
muyinliu
💻
mokeyjay
💻
Liu Cheng a.k.a MaYi
💻
dazheng_wu
💻
hewieZ
💻
weishuaigithub
💻
Eric SHI
🚧
ecmadao
🚧
Maples7
🚧