技术博客
答题类社群机器人:接入猜一猜谜语 API 做"每日一题"

答题类社群机器人:接入猜一猜谜语 API 做"每日一题"

作者: 万维易源
2026-09-03
猜一猜谜语API社群机器人每日一题答题
# 答题类社群机器人:接入猜一猜谜语 API 做"每日一题" > 接口/接入点:猜一猜谜语 API(151-2 随机) · 免费 · 适用人群:社群运营、客服/机器人开发者 · 阅读时间:约 5 分钟 ## 核心要点 - 玩法:机器人定时在群/频道推送一道谜语,用户回复答案,机器人判题并统计。 - 接口**无订阅推送/回调**,推送节奏由你方定时任务(cron)自己控制;谜底由你自建比对(见 [答案校验](https://www.showapi.com/guides/riddle-answer-check-151))。 - 免费档位有限流,机器人高并发推题要加缓存与频控(见 [频控与缓存](https://www.showapi.com/guides/riddle-rate-limit-151))。 ## Why:这跟我有什么关系 社群/公众号想做"每日一谜"提升活跃,自己维护题库麻烦。用猜一猜谜语 API 免费供给,机器人只负责出题、收答案、判题、晒榜。 ## What:接口速览 | 项 | 内容 | |----|------| | 取题 | 151-2 随机(可传 `typeId`,如 `njmy` 脑筋急转弯) | | 推送 | 你方 cron 定时触发(接口无回调) | | 判题 | 自建(归一化比对 `Answer`) | | 统计 | 你方业务数据(答对数/连续天数) | ## How:每日一题机器人 ### 步骤 1 — 定时出题(cron 每日 09:00) ```python import requests, json def daily_question(type_id="njmy"): r = requests.post("https://route.showapi.com/151-2", params={"appKey": "YOUR_APPKEY"}, data={"typeId": type_id}, timeout=10).json() items = r["showapi_res_body"].get("pagebean", {}).get("contentlist", []) q = items[0] # 存题面下发,答案仅服务端持有 return {"qid": hash(q["Title"]), "title": q["Title"], "answer": q["Answer"]} ``` ### 步骤 2 — 收答案并判题 ```python from answer_check import check # 见 答案校验 文章 def on_user_answer(qid, user_input, stored): if check(user_input, stored["answer"]): return "🎉 答对啦!" return "再想想~(答案稍后揭晓)" ``` ### 步骤 3 — 互动统计 ```python def record(uid, correct: bool): rds.hincrby("riddle_score", uid, 1 if correct else 0) rds.hincrby("riddle_streak", uid, 1 if correct else 0) # 连续答对 ``` ## 返回示例与解析 取题返回结构见 [返回字段全解](https://www.showapi.com/guides/riddle-response-fields-151)。注意 151-2 字段大写 `Title`/`Answer`。 ## 进阶/边界 - **无回调,自己排期**:接口不主动推送,用 cron/消息队列定时拉题再下发。 - **答案不下发**:机器人消息只发谜面,答案服务端比对,防作弊。 - **频控**:多群并发推送别直连接口,服务端建题池(见 [频控与缓存](https://www.showapi.com/guides/riddle-rate-limit-151))。 - **难度分层**:按 `typeId` 分(如早晨 `etmy` 儿童、午间 `njmy` 脑筋急转弯)。 ## FAQ **Q1:接口能自动每天推题吗?** 不能,接口无订阅/回调。推送由你方定时任务触发,接口只负责"给题"。 **Q2:机器人怎么知道用户答没答对?** 用谜底文本自建比对(去前缀 + 归一化),见 [答案校验](https://www.showapi.com/guides/riddle-answer-check-151)。 **Q3:多群同时发会超免费额度吗?** 可能。建题池 + 频控,把实时调用降到最低;额度以官方 /free-api 为准。 **Q4:能按关键词出"节日谜语"吗?** 151-2/151-4 无关键词参数,只能按 `typeId` 类型取(如 `dmmy` 灯谜适合元宵)。 **Q5:连续答对榜怎么算?** 你方业务数据维护(如上方 `riddle_streak`),接口不提供。 ## 相关能力 / 下一步阅读 - [拿到谜底后怎么校验用户答案?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)