技术博客
随机成语能怎么玩?每日一成语 / 打卡 / 小游戏集成

随机成语能怎么玩?每日一成语 / 打卡 / 小游戏集成

作者: 万维易源
2026-09-03
成语词典随机成语每日一句小游戏
# 随机成语能怎么玩?每日一成语 / 打卡 / 小游戏集成 > 接口:成语词典(apiCode=2964) · 接入点:随机成语(2964-3) · 是否免费:是 · 请求方式:POST/GET · 返回格式:JSON · 适用人群:教育类产品、内容创作者、小程序开发者 · 阅读时间:约 5 分钟 ## 核心要点 - 随机成语(2964-3)**无任何参数**,调用即返回一条完整释义(含拼音/解释/出处/示例)。 - 适合「每日一成语」推送、学习打卡、成语抽卡/接龙等轻量趣味场景。 - 结果每次不同,不适合需要精确复现某条的场景(那种用搜索+详情)。 ## Why:随机成语的价值 不是所有需求都要「用户主动搜」。很多教育/内容产品需要「每天给用户一条新知识」「做成语抽卡小游戏」「打卡时随机出一道题」。随机成语零参数、返回即完整,是这类场景最省事的数据源。 ## What:接口速览 | 项目 | 说明 | |------|------| | 接入点 | 随机成语(2964-3) | | 地址 | `https://route.showapi.com/2964-3` | | 入参 | 无 | | 出参 | `word`/`pinyin`/`explain`/`derivation`/`sample` | ## How:三种玩法骨架 ### 玩法 1:每日一成语(定时推送) ```python import requests, schedule, time APPKEY = "YOUR_APPKEY" def daily_idiom(): r = requests.post("https://route.showapi.com/2964-3", data={"appKey": APPKEY}, timeout=10) b = r.json()["showapi_res_body"] return f"今日成语:{b['word']}({b['pinyin']})\n{b['explain']}\n出处:{b['derivation']}" # 每天 8:00 推送(示例用 schedule,生产可换 cron/云函数) schedule.every().day.at("08:00").do(lambda: print(daily_idiom())) while True: schedule.run_pending(); time.sleep(30) ``` ### 玩法 2:成语抽卡(前端点按钮刷新) ```javascript const APPKEY = "YOUR_APPKEY"; async function drawCard() { const d = await fetch("https://route.showapi.com/2964-3", { method:"POST", headers:{"content-type":"application/x-www-form-urlencoded"}, body:new URLSearchParams({appKey:APPKEY}) }).then(r=>r.json()); const b = d.showapi_res_body; return `${b.word} ${b.pinyin}\n${b.explain}\n【出处】${b.derivation}`; } ``` ### 玩法 3:成语接龙出题 用随机成语作为「开局词」,让用户接下一个首字相同的成语(接龙的匹配逻辑需自行实现,接口只负责给词)。 ```bash curl -X POST "https://route.showapi.com/2964-3?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" -d "" ``` ## 返回示例与解析 ```json { "showapi_res_body": { "ret_code": 0, "remark": "查询成功!", "word": "画龙点睛", "pinyin": "huà lóng diǎn jīng", "explain": "比喻在关键处加一笔使内容更生动。", "derivation": "唐·张彦远《历代名画记》", "sample": "文章结尾这句话,真是画龙点睛。" } } ``` ## 进阶 / 边界 - 每次随机结果不确定,**不要**用它做「必须命中某条」的逻辑(如考试固定题),需要确定结果请用搜索+详情。 - 随机成语同样免费,但高频刷新仍受频率约束,前端可做短时本地去重(避免连续抽到同一条)。 - 想做「按字数/分类随机」:文档未提供该参数,可用搜索接口按 keyword 取一批后本地随机。 ## FAQ **Q:随机成语支持指定字数或分类吗?** 不支持。2964-3 无参数,无法按字数/分类筛选。 **Q:为什么连续刷新会抽到重复的?** 随机不保证不重复。前端可缓存最近 N 条 id 做去重,或后端维护已出队列。 **Q:随机接口返回的解释完整吗?** 完整,含拼音/解释/出处/示例,与详情接入点字段一致。 **Q:能把它当「每日一句」的固定内容吗?** 每次调用结果不同,若需「全用户同一天看到同一条」,应由你的服务端每天固定拉一次并缓存分发,而不是每个用户各自随机。 ## 相关能力 / 下一步阅读 - [成语词典三大接入点怎么选:搜索 / 详情 / 随机一篇说清](https://www.showapi.com/guides/idiom-dictionary-access-points-2964) - [成语详情字段详解:拼音 / 解释 / 出处 / 示例如何呈现给用户](https://www.showapi.com/guides/idiom-detail-fields-2964) - [儿童成语学习 App 接入指南:查词 + 每日一句 + 测验](https://www.showapi.com/guides/idiom-edu-app-guide-2964) - **本系列共 15 篇**:查看[成语词典(apiCode=2964)官方指南总目录](https://www.showapi.com/guides/idiom-dictionary-guides-2964)