一言 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 -

261 条评论

昵称
  1. 木芽

    借用你的接口加入小程序的功能,很棒!

  2. Erik

    你这里的句子比官网的好点

    1. lwl12

      @Erik 😂已经比原来的句子数量翻了20倍以上了

  3. Zxilly

    挂了。。。。超长加载时间

    1. lwl12

      @Zxilly 可以报告一下 DNS 解析结果吗,我这边没检测到问题

    2. lwl12

      @Zxilly 看了下你站上的报错 Failed to execute 'write' on 'Document': It isn't possible to write into a document from an asynchronously-loaded external script unless it is explicitly opened.,这个应该是你本站其他问题导致的,建议换成 Ajax 加载方案试一下,不会的话可以 IM 上找我。

  4. Zxilly

    代码和句子库考虑开源吗。。。自建更稳定,也降低您的负载|´・ω・)ノ

    1. lwl12

      @Zxilly 我自己目前还在不断地新增句子数据,频率大概是每周一次的样子……所以暂时没计划开源 =_=||,虽说现在负载确实是挺大的,不过就状态监控来看稳定性表现还是不错的,大可放心使用~ 如有问题欢迎通过关于页的方式联系我,后续可能会有句子的公开收集和众裁审核机制(咕咕咕),也请期待喽

  5. fushuqian

    Refused to execute script from ‘https://api.lwl12.com/hitokoto/main/get?encode=js&charset=utf-8’ because its MIME type (‘text/html’) is not executable, and strict MIME type checking is enabled.
    (index):34
    Uncaught TypeError: lwlhitokoto is not a function
    at (index):34

    求助,之前用着好好的一直没问题,今天页面突然加载不出来,显示报的这个错误,是咋回事?

    1. lwl12

      @fushuqian 最近 API 服务整体请求量太大,产生了一个月 60+ 的流量费用…… 然后毕竟这服务不收费,之前都是用爱发电,现在实在发不动了只好换到比较慢一点的线路上……

    2. lwl12

      @fushuqian 等等,你这好像是另一个问题……我查一下

    3. fushuqian

      @lwl12 非常感谢!

    4. Bruce Young

      @fushuqian 我也遇到这个问题, 之前也是好好的(。•ˇ‸ˇ•。)

    5. fushuqian

      @Bruce Young 估计是博主那边的搬家设置有点问题,得等他处理了

    6. lwl12

      @fushuqian 可以说一下你的浏览器具体版本么,这边怀疑是不是 Chrome 又更新了什么安全策略……

      有点奇怪,Header 的问题暂时不好解决

    7. fushuqian

      @lwl12 Chrome68.0.3440.106,我刚开始也以为是浏览器问题,然后试过了其他浏览器,搜狗、还有网上有认提议用火狐,都试过了,还是显示不出来,包括手机端自带的浏览器也是显示不出来

    8. lwl12

      @fushuqian 排查到是 CloudFlare 的问题,现在已经解决了|´・ω・)ノ

    9. fushuqian

      @lwl12 刚刚无聊打开站发现可以了,回来一看博主你已经解决了,真的太好了,感谢!ヾ(≧∇≦*)ゝ

    10. lwl12

      @Bruce Young 现在已经解决了|´・ω・)ノ

  6. 世界如此而已

    大佬,要不要做个分类,我也可以帮忙

    1. lwl12

      @世界如此而已 我也想做分类,不过感觉其实句子太多了,而且有些句子没有办法很准确的分给某一个分类……

  7. FASSS

    Po主啊,问一下怎么用 Ajax 技术异步请求 ?同样是WP。

    1. lwl12

      @FASSS 可以参考下 lwl.moe 的代码或者是本站底部的代码

  8. 蒲公英博客

    前来支持博主,很好用!(๑•̀ㅁ•́ฅ)

  9. 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 自己研究下,这不难

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

    1. liwanglin12

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

  11. 泽天

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

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

    1. liwanglin12

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

  13. hwim

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

  14. Bluecity

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

    1. liwanglin12

      @Bluecity 为什么要偷偷= =

    2. liwanglin12

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

    3. Bluecity

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

    4. liwanglin12

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

  15. 戴兜

    来晚了|´・ω・)ノ

  16. 否子戈

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

  17. 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 了

  18. 有间咖啡馆

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

    1. liwanglin12

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

    2. 有间咖啡馆

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

  19. 林东煌博客

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

    1. liwanglin12

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

  20. 林东煌博客

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

    1. Sakura_Love

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