今日诗词 API 是一个可以返回一句古诗词名句的接口。它可以通过图片和 JSON 格式调用。今日诗词 API 根据不同地点、时间、节日、季节、天气、景观、城市进行智能推荐。
通用简单安装代码
在 HTML 中需要加载诗词的地方放置以下加载代码即可,和 网站统计 的安装方法一致。
1
2
| <span id="jinrishici-sentence">正在加载今日诗词....</span>
<script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>
|
SDK 会自动寻找 id 或者 class 为 jinrishici-sentence
的标签,将里面的内容替换为诗词
如果需要在多个地方显示诗词,添加多个 class=" jinrishici-sentence "
的 span 即可
通用高级安装代码
如果你有其他需求(如获取作者、朝代等),可以调用我们提供的加载函数jinrishici.load
并传入回调函数,每调用一次,会传入一个新的诗词
1
2
3
4
5
6
7
| <script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>
<script type="text/javascript">
jinrishici.load(function(result) {
// 自己的处理逻辑
console.log(result)
});
</script>
|
result 返回的格式
正确返回
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| {
"status": "success",
"data": {
"id": "5b8b9572e116fb3714e6faba",
"content": "君问归期未有期,巴山夜雨涨秋池。",
"popularity": 1170000,
"origin": {
"title": "夜雨寄北",
"dynasty": "唐代",
"author": "李商隐",
"content": [
"君问归期未有期,巴山夜雨涨秋池。",
"何当共剪西窗烛,却话巴山夜雨时。"
],
"translate": [
"您问归期,归期实难说准,巴山连夜暴雨,涨满秋池。",
"何时归去,共剪西窗烛花,当面诉说,巴山夜雨况味。"
]
},
"matchTags": [
"秋",
"晚上"
],
"recommendedReason": "",
"cacheAt": "2018-09-17T21:18:44.693645"
},
"token": "6453911a-9ad7-457e-9b9d-c21011b85a0c",
"ipAddress": "162.248.93.154"
}
|
其中
data.content
是核心,即推荐的诗句
data.matchTags
是与你相关的标签,也是推荐给你的部分理由。
data.recommendedReason
是推荐原因,暂未支持。
data.cacheAt
是指我们会对每个 Token
进行预生成推荐数据并缓存。正常情况下我们会 10 分钟更新一次缓存数据。
data.popularity
是我们对这句诗的流行度评价
data.origin
源诗信息
data.origin.translate
是整诗翻译,部分诗词有,部分没有
token
是当前用户的 token
,原则上,同一个用户,一段时间内 Token 应该不变。
ipAddress
是当前用户的 ip
,如果 IP 有异常,您需要查明您是否在服务端调用
错误返回
1
2
3
4
5
| {
"status": "error",
"errCode": 2001,
"errMessage": "No matching handler"
}
|
errcode
是错误码,目前只有以下几种错误码,您也简单判断 HTTP 头中的状态码,对于错误返回,我们总不会返回 200
1001
:内部服务器错误,HTTP 状态码 500
1002
:API 路径不对,HTTP 状态码 404
2002
:Token 不是服务器签发,HTTP 状态码 400
2003
:IP 超过每日新用户限制,HTTP 状态码 400,这很有可能是您没有正确保存 Cookies 或者 Token
出错我们会帮你打在控制台上,您无需再次处理。
使用定制加载时,不要将标签的 id 或者 class 设置为 jinrishici-sentence ,否则 SDK 会自动加载一次
使用 load 之前,请确保 SDK JS 文件已经引入
高级版使用范例
可以复制到一个 HTML 文件用浏览器打开查看效果:
1
2
3
4
5
6
7
8
9
10
11
| <script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>
<div id="poem_sentence"></div>
<div id="poem_info"></div>
<script type="text/javascript">
jinrishici.load(function(result) {
var sentence = document.querySelector("#poem_sentence")
var info = document.querySelector("#poem_info")
sentence.innerHTML = result.data.content
info.innerHTML = '【' + result.data.origin.dynasty + '】' + result.data.origin.author + '《' + result.data.origin.title + '》'
});
</script>
|