一言API的调用方法 用来生成随机句子

之前在手机上一直在用这个API接口的桌面APP 能在桌面显示一个句子,台词或者情话之类的有点小文艺

我在我的网站底端接入了这个API接口 看着还挺好看 每次刷新界面都会有一句话

地址

一言官网地址:https://hitokoto.cn/

请求地址:

HTTP(s): https://v1.hitokoto.cn/

参数名称 类型 描述
c 可选 Cat,即类型。提交不同的参数代表不同的类别,具体:
a Anime - 动画
b Comic – 漫画
c Game – 游戏
d Novel – 小说
e Myself – 原创
f Internet – 来自网络
g Other – 其他
其他不存在参数 任意类型随机取得
encode 可选
text 返回纯净文本
json 返回不进行unicode转码的json文本
js 返回指定选择器(默认.hitokoto)的同步执行函数。
其他不存在参数 返回unicode转码的json文本
charset 可选
utf-8 返回 UTF-8 编码的内容,支持与异步函数同用。
gbk 返回 GBK 编码的内容,不支持与异步函数同用。
callback 可选
回调函数 将返回的内容传参给指定的异步函数。

返回参数名称 描述
id 本条一言的id。
可以链接到https://hitokoto.cn?id=[id]查看这个一言的完整信息。
hitokoto 一言正文。编码方式unicode。使用utf-8。
type 类型。请参考第三节参数的表格。
from 一言的出处。
creator 添加者。
cearted_at 添加时间。
注意:如果encode参数为text,那么输出的只有一言正文。

示例:

https://v1.hitokoto.cn/(从7种分类中随机抽取)
https://v1.hitokoto.cn/?c=b (请求获得一个分类是漫画的句子)
https://v1.hitokoto.cn/?c=f&encode=text (请求获得一个来自网络的句子,并以纯文本格式输出)

网页中的写法:

首先ID是必不可缺的

<p id="hitokoto">:D 获取中...</p>

然后在下面调取方法中任选一个

<!-- 现代写法,推荐 --><!-- 兼容低版本浏览器 (包括 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; 
    })
    .catch(function (err) {      console.error(err);
    })</script>
<!-- 老式写法,兼容性最忧 -->
<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');
      hitokoto.innerText = data.hitokoto;
    }
  }
  xhr.send();</script>
<!-- 新 API 方法, 十分简洁 -->
<script src="https://v1.hitokoto.cn/?encode=js&select=%23hitokoto" defer></script>

我用的是后者

这个API真心不错 还支持HTTPS

而这个作者貌似还在做网易云音乐的随机API

作为一个老用户 我当然会一直追随着啦 看样子不久后我还应该在写一篇文章