MBTI-16型人格测试(200题完整版)免费 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,如10000000

key

用户中心通讯密钥

type

1= 获取问题,2= 提交答案

version

1基础版 48 题 /2专业版 93 题 /3完整版 200 题

按 type 追加的参数

type = 1(获取问题)

  • num(必填):问题编号,从 1 开始,不能超过当前版本最大题数。

type = 2(提交答案)

  • qcan(必填):每题答案用英文逗号拼接,每题为AB,长度须等于对应版本的题数。

    • 例:A,A,A,B,A……


三、返回参数说明

字段

说明

code

200成功,400错误

msg

文字提示(如"通讯秘钥错误")

q

题目文本(type=1 时返回)

a

A 选项文本(type=1 时返回)

b

B 选项文本(type=1 时返回)

mbti

人格类型代号,如ESTP(type=2 提交后返回)

返回示例

// 获取题目 { "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"])

七、使用注意事项

  1. version 与题数必须对应:48 / 93 / 200,提交时qcan的逗号分隔项数不能错,否则逻辑会乱。

  2. qcan 只能出现 A 或 B,用英文逗号分隔,不要带空格。

  3. 获取题目时num是逐题拉取的(不是一次返回全部 200 题),前端需要自己维护题号循环。

  4. 返回mbti字段只给 4 字母代号(如INFJ),想展示人格解读可以:

    • 自行维护一份 16 型映射表;

    • 或调用该站点的「人格类型解释查询接口」(参考文末原站链接)。

  5. 生产环境务必用 POST,GET 会把 ID / KEY 暴露在 URL 和日志里。