一言 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/v1?encode=js&charset=utf-8"></script><span id="lwlhitokoto"><script>lwlhitokoto()</script></span>

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

一言展示

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

刷新试试?会变哦~

谁在使用一言

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


- EOF -

285 条评论

昵称
  1. Pingback: 使用一言为你的网站底部添加一句随机的话 - 不挂科的黄拼科

  2. 椰子

    ( ๑´•ω•) “(ㆆᴗㆆ) 准备加在自己的APP上,感谢博主

  3. MingMoe

    啊呸是功能OωO

  4. MingMoe

    想问一下,能不能加一个性能,只获取指定作品或人物的话,或者是获取语句中带有某个字/词的话|´・ω・)ノ

  5. 接口是否出错了

  6. 乐乐乐

    为啥我感觉出现了些问题,就是那些话很不通顺,疑似乱码

    1. lwl12

      @乐乐乐 你是怎么调用的?🙃

    2. 乐乐乐

      @lwl12 就是比如文中一言展示部分,你看看,,我觉得好像不太正常

    3. lwl12

      @乐乐乐 你是自己做了什么APP去调用么,还是只是在网站上?

    4. 乐乐乐

      @lwl12 只是想在网站调用下

    5. lwl12

      @乐乐乐 我看了一下,你的网站打开之后在以每秒一次的速度请求一言 API,你的 IP 应该是请求频率过高被拉黑了所以才会有这样的输出。

      建议不要设置自动更新一言(在页面跳转时才跟随页面加载获取一条),你这个速度根本没有用户能看得清的,没有意义。我刚刚已经手动把你从黑名单里拉出来了,记得调整一下你的调用。

    6. 乐乐乐

      @lwl12 嗯嗯 好 谢谢啦,我记得我设置的是十秒还是二十年执行一次获取的呀,电脑没带回宿舍,我明天看看吧。蟹蟹蟹蟹

    7. 乐乐乐

      @lwl12 我刚手机看了一下,的确一秒。。
      我明天就改🤪

    8. 乐乐乐

      @lwl12 你看看这个页面的那个展示栏 我觉得也不太对

  7. Pika

    丫!没看仔细,网页调用那里还是原版的,不过上面已经修改为…/v1了

    1. lwl12

      @Pika ……我的锅,已经改正了,感谢捉虫(

  8. Pika

    Hitokoto API already changed its address for few months, plz go to https://lwl.moe/zY8pH for new call method. ୧(๑•̀⌄•́๑)૭ 可是我过来了发现这里的api链接还是https://api.lwl12.com/hitokoto/main/get呀。。

    1. lwl12

      @Pika ∠( ᐛ 」∠)_借楼给所有用户说明一下吧,一言现在日调用量高得吓人,然后几个月前开始就想改的更规范化一点。现在一言 API 已经在重构当中了,然后后续的话可能会和 v2 一起上线 token 申请之类的机制挡一部分恶意调用,然后也更方便我做统计。

      然后呢前几个月的时候 API 放在带宽按量计费服务器上,用了好多钱钱,虽然现在已经搬到一台定宽服务器上了,不过还是欢迎在顶上“关于->捐助”里给 lwl 投食,开着这 API 当 7×16 小时运维还要赔钱怪难受的(小声bb

  9. 三千岁

    用了好像很久了当时是诺基亚的wp系统,现在换成安卓了。博主可以在app加个支付宝捐款,聊表心意。

    1. lwl12

      @三千岁 humm 据我所知我的 API 好像没有被 WP 开发者做成 APP 过,不过 Android 有是事实…

      需要说明的是,这里提供的只是一个 API,最终在您手机上展示的时候是有其他开发者对我的 API 做了二次开发包装成了 APP。因此您得确认下您到底是想捐助咱的 API 还是捐助 APP 的开发者啦。

      如果看完这些还是想捐助咱的话,在 https://lwl.moe/ 可以找到我的支付宝~ 无论您最终是否捐助我或是周边 APP 作者,我都感谢您的心意,祝使用愉快~ʕ•̀ω•́ʔ✧

  10. 乱码

    Hello,我也开发了一个 关于古诗词的 一言 API,可以根据场景智能推荐。我们还提供炒鸡方便的安装 SDK。一起学习哈哈。
    https://www.jinrishici.com

    1. lwl12

      @乱码 前几天在 V2 看到了,你这个还做了分类挺厉害的 2333

    2. 乱码

      @lwl12 有新旧版,旧版和一言比较像,可以按分类。新版就直接推荐啦,没有再分类了。

    3. lwl12

      @乱码 嗯我的意思就是有比较精确的分类推荐这个很棒|´・ω・)ノ

  11. 木芽

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

  12. Erik

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

    1. lwl12

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

  13. 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 上找我。

  14. Zxilly

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

    1. lwl12

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

  15. 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 现在已经解决了|´・ω・)ノ

  16. 世界如此而已

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

    1. lwl12

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

  17. FASSS

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

    1. lwl12

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

  18. 蒲公英博客

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

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

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

    1. liwanglin12

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

  21. 泽天

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

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

    1. liwanglin12

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

  23. hwim

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

  24. Bluecity

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

    1. liwanglin12

      @Bluecity 为什么要偷偷= =

    2. liwanglin12

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

    3. Bluecity

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

    4. liwanglin12

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

  25. 戴兜

    来晚了|´・ω・)ノ

  26. 否子戈

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

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

  28. 有间咖啡馆

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

    1. liwanglin12

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

    2. 有间咖啡馆

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

  29. 林东煌博客

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

    1. liwanglin12

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

  30. 林东煌博客

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

    1. Sakura_Love

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