技术博客
小程序/App 怎么接猜一猜谜语 API?社交娱乐趣味模块全链路设计

小程序/App 怎么接猜一猜谜语 API?社交娱乐趣味模块全链路设计

作者: 万维易源
2026-09-03
猜一猜谜语API小程序社交娱乐答题判题
# 小程序/App 怎么接猜一猜谜语 API?社交娱乐趣味模块全链路设计 > 接口/接入点:猜一猜谜语 API(151-2 随机 / 151-4 按类型分页) · 免费 · 适用人群:小程序/App 开发者、社交娱乐产品 · 阅读时间:约 7 分钟 ## 核心要点 - 典型链路:后端调 151-2/151-4 取题 → 前端展示谜面 → 用户提交答案 → **后端自建比对逻辑判题**(接口不返回对错,只给 `Answer` 文本)。 - 答案文本带"答:/谜底:"前缀,比对前需归一化(去前缀、去空格标点)。具体做法见 [答案校验](https://www.showapi.com/guides/riddle-answer-check-151)。 - 免费接口设档位限制,前端频繁刷新会触发限流,务必加缓存(见 [频控与缓存](https://www.showapi.com/guides/riddle-rate-limit-151))。 ## Why:这跟我有什么关系 社交 App、小程序、社群工具想加"每日一谜""趣味答题"提升日活和停留,自己建题库成本高。用猜一猜谜语 API 调一个请求就有题有答案,你只负责出题与判题的交互。 ## What:接口速览 | 项 | 内容 | |----|------| | 取题接口 | 151-2 随机(`/151-2`)或 151-4 按类型分页(`/151-4`) | | 答案来源 | 同一返回里的 `Answer` / `answer` 字段 | | 判题 | **接口不做**,需你方后端/前端自建 | | 鉴权 | AppKey 放服务端,前端只拿你后端下发的题目 | ## How:全链路设计 ### 步骤 1 — 后端取题(服务端代持 AppKey) ```python import requests, random def fetch_riddle(type_id=None): url = "https://route.showapi.com/151-2" params = {"appKey": "YOUR_APPKEY"} data = {"typeId": type_id} if type_id else {} r = requests.post(url, params=params, data=data, timeout=10).json() rb = r["showapi_res_body"] items = rb.get("pagebean", {}).get("contentlist", []) if not items: return None it = random.choice(items) # 随机抽一条,避免每次都第一条 return { "title": it.get("Title"), "typeName": it.get("typeName"), "answer_raw": it.get("Answer"), # 仅服务端持有,不下发给前端 } ``` ### 步骤 2 — 前端展示谜面(不下发答案) ```json { "title": "问:有一头头朝北的牛…", "typeName": "智力问答" } ``` ### 步骤 3 — 用户提交答案,后端判题 ```python def normalize(s): s = s.replace("答:", "").replace("谜底:", "") return "".join(ch for ch in s if ch.isalnum() or ch == " ") # 去标点空格 def check(user_input, answer_raw): return normalize(user_input) == normalize(answer_raw) ``` > 判题归一化细节与边界见 [答案校验](https://www.showapi.com/guides/riddle-answer-check-151)。 ### 步骤 4 — UI 草稿(伪代码) ``` 展示谜面 → 输入框 + 提交按钮 → 调 /check → 显示"答对/答错" + 揭晓谜底 ``` ## 返回示例与解析 取题返回结构见 [返回字段全解](https://www.showapi.com/guides/riddle-response-fields-151)。注意 151-2 是 `Title`/`Answer` 大写,151-4 是小写 `title`/`answer`。 ## 进阶/边界 - **答案不下发前端**:否则用户能直接看源码作弊。答案只在服务端比对。 - **随机抽题**:151-2 一次返回 20 条,服务端随机抽一条下发,减少调用次数。 - **限流**:免费档位限制频率,前端刷新太快会 429/限流;加服务端缓存与每日题池(见 [频控与缓存](https://www.showapi.com/guides/riddle-rate-limit-151))。 - **难度分级**:接口不返回难度字段,需你按 `typeId` 自行归类(如儿童用 `etmy`、成语用 `cymy`)。 ## FAQ **Q1:接口能直接告诉我用户答得对不对吗?** 不能。接口只返回 `Answer` 文本,对错判定由你自建(去前缀 + 归一化比对)。 **Q2:前端能放 AppKey 吗?** 不建议。AppKey 应只在服务端使用,前端通过你的后端拿题,避免泄露与盗刷。 **Q3:每次刷新都调接口会怎样?** 可能触发免费档位限流。建议服务端建题池 + 缓存,按节奏下发。 **Q4:怎么按难度给不同用户出题?** 接口无难度字段;按 `typeId` 划分(如 `etmy` 儿童、`cymy` 成语、`njmy` 脑筋急转弯),见 [类型清单](https://www.showapi.com/guides/riddle-typelist-151)。 **Q5:151-2 和 151-4 取题有什么区别?** 151-2 随机返回(可传 `typeId` 筛选);151-4 按 `typeId`+`page` 分页查,适合"我要第 N 类第 M 页"的确定取题。 ## 相关能力 / 下一步阅读 - [拿到谜底后怎么校验用户答案?API 不代判,需自建比对逻辑](https://www.showapi.com/guides/riddle-answer-check-151) - [免费额度怎么用不超:猜一猜谜语 API 的调用频控与缓存建议](https://www.showapi.com/guides/riddle-rate-limit-151) - [营销裂变:用猜一猜谜语 API 做答题抽奖与互动游戏](https://www.showapi.com/guides/riddle-marketing-activity-151) - **本系列共 13 篇**:查看[猜一猜谜语 API 指南总目录](https://www.showapi.com/guides/riddle-guides-151)