# seniverse-api-demos **Repository Path**: tony7/seniverse-api-demos ## Basic Information - **Project Name**: seniverse-api-demos - **Description**: 心知天气 API 产品使用调用示例 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-10-18 - **Last Updated**: 2023-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 心知天气 API 调用示例 [](#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) - [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 调用失败的问题 可能的原因有: - `ts` 时间戳过短 - `key` 加密后的结果没有通过 Base64 编码 - 在构造签名的时候,参数的顺序不正确。参与签名的参数有 UNIX 时间戳 `ts`,签名失效时间 `ttl`(单位为秒,缺省为 1800,可选)和公钥 `uid`。请确保: 1. 参数按照键字典升序排列,例如 `ts=1443079775&ttl=30&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 🚧 |