一言 API – 链接记忆,走过时光。

我们希望通过一言,链接大家对各方文字的美好记忆,伴你踩碎迷茫,走过时光。

什么是一言

相信大家都有或曾经有过自己的摘抄本。「一言」就好似一个公开的摘抄本,我们在此记录那些让人感怀的,让人振奋的,让人感动的,让人一眼就有所感触的短句,并通过公共 API 的形式使你能够在自己的项目中调用它们。

我们希望通过一言,链接大家对各方文字的美好记忆,伴你踩碎迷茫,走过时光。

如果你不是开发者,只是想在自己的设备上看到「一言」,请移步文末的「谁在使用一言?」部分。

调用方法

获取数据

出于安全考虑,我们仅支持通过 HTTPS 方法调用 API
以下所有参数均仅适用于以 GET 方式请求地址: https://api.lwl12.com/hitokoto/v1

  • charset: 字符集,支持gbk/utf-8,默认为utf-8
  • encode: 数据格式,分为 js \ json \ realjson 三种
    • js 返回函数名为 lwlhitokoto 的 JavaScript 脚本,该脚本使用 document.write() 函数显示一言
    • json 返回函数名为 echokoto 的 JSONP 数据
    • realjson 返回标准 Json 数据

响应数据

当您请求标准 Json 数据时,API 会返回以下内容:

  • text: 一言主体文本
  • author: 一言在原出处中的作者
  • source: 一言的来源

请注意,由于数据收集难度很大,并非所有数据都包含 author / source ,请注意在您的程序中判断这两个值为空的情况。

我们假设现在有一作品 A,其中某一段这样写道:

友人B:看呀,这个一言 API 多么好用!

则当我们收录后,返回的数据就会是这样:

  • text: 看呀,这个一言 API 多么好用!
  • author: 友人B
  • source: 《A》

下面是实际请求一次 https://api.lwl12.com/hitokoto/v1?encode=realjson 的结果:

{
    text: "没有谁的生活会一直完美,但无论什么时候,都要看着前方,满怀希望就会所向披靡。",
    author: "巫哲",
    source: "《撒野》"
}

当您使用的 encode 不为 Json 时,API 将以 主体文本 ——作者, 来源 的方式组合并返回文本。

网页引用

将下面这段代码放入页面内需要展示一句话的位置即可

<script type="text/javascript" src="https://api.lwl12.com/hitokoto/main/get?encode=js&charset=utf-8"></script><div id="lwlhitokoto"><script>lwlhitokoto()</script></div>

请注意,这是一个最简单的调用实例,但我们并不推荐您使用这一方法。使用 Ajax 技术异步请求 JsonP 或 Json 接口会是更好的选择。
由于这类代码需要根据站点实际情况编写,这里不提供代码。您可参考 lwl.moe 或其他网站的调用方式自行完成调用。

一言展示

下方会显示一条随机的一言_(:з」∠)_

刷新试试?会变哦~

谁在使用一言

以下是一言的典型使用案例,欢迎体验。


- EOF -

237 条评论

昵称
  1. Yimeng8s

    大佬,为啥我用https://api.lwl12.com/hitokoto/v1?encode=realjson
    反回的数据是
    {“text”:”\u5230\u6700\u540e\u4f60\u90fd\u6ca1\u6709\u8bb2\u5982\u679c\u6df1\u7231\u8981\u600e\u4e48\u6536\u573a”,”author”:””,”source”:”\u76d7\u5893\u7b14\u8bb0″}
    和你的不一样????

    1. liwanglin12

      @Yimeng8s 这是被 ASCII 编码过了啊。。程序一般会自动解码的不用担心

    2. Yimeng8s

      @liwanglin12 还有个问题,就是我用第三平台搭建的页面,想对返回的文本进行格式化,如加大字体改颜色,要怎么弄?看了下没有id可以定位到文本

    3. liwanglin12

      @Yimeng8s 自己研究下,这不难

  2. |´・ω・)ノ软件调用了 谢谢

    1. liwanglin12

      @源 软件调用的话请务必规范一下 User-Agent 以免被风控拦截请求😂能告诉我是什么软件吗

  3. 泽天

    老哥、我在这里调用了你的API,超级棒!!http://blog.52hacker.cn/
    o(////▽////)q

  4. 好喜欢诗词,有没有诗词版的一言呢?

    1. liwanglin12

      @鲸 诗鲸开源的那个库可以看看

  5. hwim

    博主,为什么我的博客地址是http开头的时候好好的,但是在https开头的时候,一言就显示在了博客顶部?

  6. Bluecity

    uQEV.png
    偷偷抓到了我的软件里(逃ε=ε=ε=┏(゜ロ゜;)┛

    1. liwanglin12

      @Bluecity 为什么要偷偷= =

    2. liwanglin12

      @Bluecity 那个我问一下你大概是什么时候开始用一言的啊,另外你软件发出请求的 User-Agent 是什么?

    3. Bluecity

      @liwanglin12 对不起大佬没看到哈 现在才回 貌似2018-04-17才开始吧。。 UA貌似就是客户机的UA….

    4. liwanglin12

      @Bluecity 嗷那应该不是你……我这有个很奇怪的 UA 在大量请求= =

  7. 戴兜

    来晚了|´・ω・)ノ

  8. 否子戈

    感觉更适合用区块链来做啊,
    有没有想开发区块链的想法呀?

  9. wlonec

    emmm,想爬取下数据,1分钟调一次接口,会不会被打死= = 或者有一言的汇总数据么。看github上的不全来着。啊哈哈哈 ヾ(≧∇≦*)ゝ

    1. liwanglin12

      @wlonec 爬取频率这么低其实我也没啥好说的了。。不过你要这个库干嘛呢?一直不是很能理解为什么我出啥就有人要造一样的轮子😅

      如果你愿意帮助我核验库内的一万多条句子的来源和友善度的话我并不介意给你一份完整库(((

    2. wlonec

      @liwanglin12 因为爬了后就可以不用去请求了。觉得这个挺好的。但自己去搜集数据的话比较麻烦。就想偷懒了。自己做后台的,爬过来的话。就自己内部调用了。更可控一点=0=,并不是为了造轮子啥的。啊哈。那我就自己动手取数据了~ 3Q

    3. liwanglin12

      @wlonec 内部调用不还是得要请求么。。 总之还是很开心你爬之前能告诉我一声,很多人都直接爬完走人的😅

    4. 茂猪

      @liwanglin12 我没爬,我直接用Github上的库。ヾ(≧∇≦*)ゝ

    5. emm

      @liwanglin12 偷走闪人

    6. liwanglin12

      @emm ???能把话说清楚吗

    7. Sakura_Love

      @wlonec →_→1秒10次都嫌慢,况且还要做数据去重,不如直接去爬juzimi之类的网站

    8. liwanglin12

      @Sakura_Love 10req/s 就属于明显的 abuse 了

  10. 有间咖啡馆

    请教个问题,用js的话,lwlhitokoto的document.write会请求一个新页面,导致非pjax或者ajax类的页面在点击返回按钮时变成一片空白,CHCYDAVM`I_~CJ$0F3NQOU4.png
    其他的调用方法有没有示例呢?

    1. liwanglin12

      @有间咖啡馆 看看本站的调用方法(

    2. 有间咖啡馆

      @liwanglin12 这..就暴露了我啥都不懂的事实了facial

  11. 林东煌博客

    能否来个不用刷新就能自动轮显的代码?

    1. liwanglin12

      @林东煌博客 那样会浪费我这里的计算资源的。。。

  12. 林东煌博客

    我喜欢用一言,晚上也弄个。

    1. Sakura_Love

      @林东煌博客 facial你可以自己造一段ajax就行了233