免费 API 接口详解与调用教程)
MBTI迈尔斯-布里格斯类型指标是经过 50 余年研究发展形成的性格测评体系广泛应用于职场、招聘、心理测试等场景。本文基于接口盒子的「MBTI-16型人格测试」免费 API从接口说明、参数、返回值到PHP / Python 实战调用示例做一次完整拆解。一、接口基本信息项目说明接口地址https://cn.apihz.cn/api/mingli/mbti.php请求方式GET 或 POST收费情况免费需注册获取个人 ID / KEY每日调用无上限版本支持基础版 48 题 / 专业版 93 题 / 完整版 200 题二、请求参数说明通用参数所有请求都要带参数必填说明id是用户中心数字 ID如10000000key是用户中心通讯密钥type是1 获取问题2 提交答案version是1基础版 48 题 /2专业版 93 题 /3完整版 200 题按 type 追加的参数type 1获取问题num必填问题编号从 1 开始不能超过当前版本最大题数。type 2提交答案qcan必填每题答案用英文逗号拼接每题为A或B长度须等于对应版本的题数。例A,A,A,B,A……三、返回参数说明字段说明code200成功400错误msg文字提示如通讯秘钥错误q题目文本type1 时返回aA 选项文本type1 时返回bB 选项文本type1 时返回mbti人格类型代号如ESTPtype2 提交后返回返回示例// 获取题目 { code: 200, q: 当你参加社交聚会时你倾向于, a: A. 与多数人交谈包括陌生人。, b: B. 寻找熟悉的人或小团体进行深入交流。 } // 提交答案后 { code: 200, mbti: ESTP }四、GET 请求示例官方原版https://cn.apihz.cn/api/mingli/mbti.php?id88888888key88888888type1version3num1五、PHP 调用示例5.1 获取第 1 题POST cURL?php $api https://cn.apihz.cn/api/mingli/mbti.php; $params [ id 你的ID, key 你的KEY, type 1, version 3, // 完整版 200 题 num 1 ]; $ch curl_init($api); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER true, CURLOPT_POST true, CURLOPT_POSTFIELDS $params, ]); $response curl_exec($ch); curl_close($ch); $data json_decode($response, true); if ($data[code] 200) { echo 题目{$data[q]}\n; echo A{$data[a]}\n; echo B{$data[b]}\n; } else { echo 错误{$data[msg]}\n; }5.2 提交 200 题答案完整版?php $answers implode(,, array_fill(0, 200, A)); // 示例200 题全选 A $params [ id 你的ID, key 你的KEY, type 2, version 3, qcan $answers ]; $ch curl_init(https://cn.apihz.cn/api/mingli/mbti.php); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER true, CURLOPT_POST true, CURLOPT_POSTFIELDS $params, ]); $response curl_exec($ch); curl_close($ch); $data json_decode($response, true); echo $data[code] 200 ? 你的人格类型是{$data[mbti]}\n : 错误{$data[msg]}\n;六、Python 调用示例6.1 获取第 1 题requestsimport requests api https://cn.apihz.cn/api/mingli/mbti.php params { id: 你的ID, key: 你的KEY, type: 1, version: 3, num: 1 } r requests.post(api, dataparams) data r.json() if data[code] 200: print(题目, data[q]) print(A, data[a]) print(B, data[b]) else: print(错误, data[msg])6.2 提交 200 题答案import requests # 模拟一份答案前 100 题 A后 100 题 B answers ,.join([A] * 100 [B] * 100) payload { id: 你的ID, key: 你的KEY, type: 2, version: 3, qcan: answers } r requests.post(https://cn.apihz.cn/api/mingli/mbti.php, datapayload) data r.json() if data[code] 200: print(你的人格类型, data[mbti]) else: print(错误, data[msg])七、使用注意事项version 与题数必须对应48 / 93 / 200提交时qcan的逗号分隔项数不能错否则逻辑会乱。qcan 只能出现 A 或 B用英文逗号分隔不要带空格。获取题目时num是逐题拉取的不是一次返回全部 200 题前端需要自己维护题号循环。返回mbti字段只给 4 字母代号如INFJ想展示人格解读可以自行维护一份 16 型映射表或调用该站点的「人格类型解释查询接口」参考文末原站链接。生产环境务必用 POSTGET 会把 ID / KEY 暴露在 URL 和日志里。