给博客添加一言Hitokoto
温馨提示:
本文最后更新于2021年02月08日,已超过3年9个月(约1382天)没有更新,若内容或图片失效,请留言反馈。
说明
一言网创立于2016年,隶属于萌创Team,主要提供一句话服务。
动漫也好,小说也好,网络也好,无论在哪里,我们总会看到有那么一个两个句子能穿透你的心。我们把这些句子汇聚起来,形成一言网络,以传递更多的感动。如果可以,我们希望我们没有停止服务的那一天。
简单来说,一言指的就是一句话,可以是动漫中的台词,也可以是网络上的各种小段子。或是感动,或是开心,有或是单纯的回忆。来到这里,留下你所喜欢的那一句句话,与大家分享,这就是一言存在的目的。(来源于一言官方网站)
时间规划
时间 | 版本 | 影响接口 | 调整 | 技术栈 |
---|---|---|---|---|
2018年6月 | 测试 | api.hitokoto.cn 和 sslapi.hitokoto.cn | 互连重定向至v1接口。老接口将不做额外保证。 | 的PHP |
2018年7月 | v1 | v1.hitokoto.cn | v1接口锁定功能结构,若无重要原因将不会增减功能。接口将稳定存在直至v2上线后一年。 | Node.js和Docker |
预计2021年 | v2 | 不详 | 上线v2接口 | Node.js,Go或者Swoole |
目前v1接口已进入功能锁定阶段。
请求地址
地址 | 协议 | 方法 | QPS限制 | 线路 |
---|---|---|---|---|
v1.hitokoto.cn | HTTPS | 任何 | 3.5 | 全球 |
international.v1.hitokoto.cn | HTTPS | 任何 | 10 | 国外 |
请注意:一言域名已加入HSTS预加载计划,所有请求一律以HTTPS方法进行。
请求参数
参数 | 值 | 任选 | 说明 |
---|---|---|---|
C | 见后表 | 是 | 句子类型 |
编码 | 见后表 | 是 | 返回编码 |
字符集 | 见后表 | 是 | 字符集 |
打回来 | 如:moe | 是 | 调用的异步函数 |
选择 | 默认值:.hitokoto | 是 | 选择器。配合encode=js使用 |
min_length | 默认值:0 | 是 | 返回句子的最小长度(包含) |
最长长度 | 默认值:30 | 是 | 返回句子的最大长度(包含) |
返回:(默认json格式)
返回参数名称 | 描述 |
---|---|
ID | 一言标识 |
一人 | 一言正文。编码方式unicode。使用utf-8。 |
类型 | 类型。请参考第三节参数的表格 |
从 | 一言的出处 |
从谁 | 一言的作者 |
创作者 | 添加者 |
creator_uid | 添加者用户标识 |
审稿人 | 审核员标识 |
uid | 一言唯一标识;可以链接到https://hitokoto.cn?uuid=[uuid] (在新窗口中打开) 查看这个一言的完整信息 |
commit_from | 提交方式 |
created_at | 添加时间 |
长度 | 句子长度 |
示例:
https://v1.hitokoto.cn/(从7种分类中随机抽取)
https://v1.hitokoto.cn/?c=b (请求获得一个分类是漫画的句子)
https://v1.hitokoto.cn/?c=f&encode=text (请求获得一个来自网络的句子,并以纯文本格式输出)
网页使用示例:
<!-- 请注意,以下的示例包含超链接,您可能需要手动配置样式使其不变色。如果您嫌麻烦,可以移除。 -->
<p id="hitokoto"><a href="#" id="hitokoto_text">:D 获取中...</a></p>
<!-- 以下写法,选取一种即可 -->
<!-- 现代写法,推荐(不支持 IE) -->
<script>
fetch('https://v1.hitokoto.cn')
.then(response => response.json())
.then(data => {
const hitokoto = document.getElementById('hitokoto_text')
hitokoto.href = 'https://hitokoto.cn/?uuid=' + data.uuid
hitokoto.innerText = data.hitokoto
})
.catch(console.error)
</script>
<!-- 如果你配置了 axios -->
<script>
axios.get('https://v1.hitokoto.cn')
.then(({ data }) => {
const hitokoto = document.getElementById('hitokoto_text')
hitokoto.href = 'https://hitokoto.cn/?uuid=' + data.uuid
hitokoto.innerText = data.hitokoto
})
.catch(console.error)
</script>
<!-- 如果你的站点使用了 jQuery(如果是 JQ 3.x 以及更新的版本, 你得使用完整版的 JQ), 那么你可以... -->
<script>
$.ajax({
type: 'GET',
url: 'https://v1.hitokoto.cn',
dataType: 'jsonp',
jsonp: 'callback',
jsonpCallback: 'hitokoto',
success (data) {
$('#hitokoto_text').attr('href', 'https://hitokoto.cn/?uuid=' + data.uuid)
$('#hitokoto_text').text(data.hitokoto)
},
error (jqXHR, textStatus, errorThrown) {
// 错误信息处理
console.error(textStatus, errorThrown)
}
})
</script>
<!-- P.S 我们不推荐使用 jQuery Ajax。 推荐使用 fetch api 或者 axios.js-->
<!-- 老式写法,兼容性最好; 支持 IE -->
<script>
var xhr = new XMLHttpRequest();
xhr.open('get', 'https://v1.hitokoto.cn');
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
var data = JSON.parse(xhr.responseText);
var hitokoto = document.getElementById('hitokoto_text');
hitokoto.href = 'https://hitokoto.cn/?uuid=' + data.uuid
hitokoto.innerText = data.hitokoto;
}
}
xhr.send();
</script>
<!-- 新 API 方法, 十分简洁 -->
<script src="https://v1.hitokoto.cn/?encode=js&select=%23hitokoto" defer></script>
参考使用方法:
<p id="hitokoto">正在加载一言...</p>
<!-- 一言API -->
<!-- 现代写法,推荐 -->
<!-- 兼容低版本浏览器 (包括 IE),可移除 -->
<script src="https://cdn.jsdelivr.net/npm/bluebird@3/js/browser/bluebird.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/whatwg-fetch@2.0.3/fetch.min.js"></script>
<!--End-->
<script>
fetch('https://v1.hitokoto.cn')
.then(function (res){
return res.json();
})
.then(function (data) {
var hitokoto = document.getElementById('hitokoto');
hitokoto.innerText = data.hitokoto + '——【' + data.from + '】';
})
.catch(function (err) {
console.error(err);
})
</script>
寒星皓月》原创,转载请保留文章出处。
本文链接:https://www.wanghanyue.com/post-51.html
作品采用:知识共享署名 4.0 (CC BY-NC-SA 4.0) 国际许可协议 进行许可。
版权声明:若无特殊注明,本文为《正文到此结束
发表吐槽
你肿么看?
既然没有吐槽,那就赶紧抢沙发吧!