MBTI-16型人格测试(200题完整版)免费 API 接口详解与调用教程
MBTI(迈尔斯-布里格斯类型指标)是经过 50 余年研究发展形成的性格测评体系,广泛应用于职场、招聘、心理测试等场景。本文基于接口盒子的「MBTI-16型人格测试」免费 API,从接口说明、参数、返回值到PHP / Python 实战调用示例,做一次完整拆解。
一、接口基本信息
项目 | 说明 |
|---|---|
接口地址 |
|
请求方式 | GET 或 POST |
收费情况 | 免费(需注册获取个人 ID / KEY,每日调用无上限) |
版本支持 | 基础版 48 题 / 专业版 93 题 / 完整版 200 题 |
二、请求参数说明
通用参数(所有请求都要带)
参数 | 必填 | 说明 |
|---|---|---|
| 是 | 用户中心数字 ID,如 |
| 是 | 用户中心通讯密钥 |
| 是 |
|
| 是 |
|
按 type 追加的参数
type = 1(获取问题)
num(必填):问题编号,从 1 开始,不能超过当前版本最大题数。
type = 2(提交答案)
qcan(必填):每题答案用英文逗号拼接,每题为A或B,长度须等于对应版本的题数。例:
A,A,A,B,A……
三、返回参数说明
字段 | 说明 |
|---|---|
|
|
| 文字提示(如"通讯秘钥错误") |
| 题目文本(type=1 时返回) |
| A 选项文本(type=1 时返回) |
| B 选项文本(type=1 时返回) |
| 人格类型代号,如 |
返回示例
// 获取题目 { "code": 200, "q": "当你参加社交聚会时,你倾向于:", "a": "A. 与多数人交谈,包括陌生人。", "b": "B. 寻找熟悉的人或小团体进行深入交流。" } // 提交答案后 { "code": 200, "mbti": "ESTP" }四、GET 请求示例(官方原版)
https://cn.apihz.cn/api/mingli/mbti.php?id=88888888&key=88888888&type=1&version=3&num=1五、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 题(requests)
import 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, data=params) 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", data=payload) 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 型映射表;
或调用该站点的「人格类型解释查询接口」(参考文末原站链接)。
生产环境务必用 POST,GET 会把 ID / KEY 暴露在 URL 和日志里。
