API 接口详细文档

微信公众号:磊子 X 麦喵单词卡

API 接口详细文档

麦喵开放 API 提供完整的 HTTP 接口服务,支持卡片和卡组的创建、查询、管理。

基础信息

Base URL: https://fc-mp-7c19cdfb-aa09-46b8-af6b-f7b52e3b3d7b.next.bspapp.com/open-api

App ID: __UNI__235AE90(所有接口都需在 Header 中携带)

认证机制

用户认证

需要登录态的接口(如创建卡组、获取卡片列表):

Header类型说明
uni-id-tokenstring用户登录凭证,通过 /login 接口获取
app-idstring应用标识,固定值 __UNI__235AE90

卡组认证

操作卡片的接口(如创建卡片):

参数类型说明
cardGroupTokenstring卡组访问凭证(JWT Token),通过 /getCardGroupOpenApiToken 获取

接口列表

1. 用户登录

获取用户访问凭证。

接口地址: POST /login

请求头:

app-id: __UNI__235AE90
Content-Type: application/json

请求参数:

参数类型必填说明
mobilestring手机号
passwordstring密码

响应示例:

{
  "errCode": 0,
  "errMsg": "success",
  "data": {
    "uid": "用户ID",
    "token": "认证token",
    "tokenExpired": 1672531200000
  }
}

错误响应:

{
  "errCode": 500,
  "errMsg": "手机号不能为空",
  "data": null
}

2. 获取当前用户信息

获取当前登录用户的详细信息。

接口地址: POST /getCurrentUser

请求头:

uni-id-token: <用户认证token>
app-id: __UNI__235AE90
Content-Type: application/json

请求参数: 无

响应示例:

{
  "errCode": 0,
  "errMsg": "success",
  "data": {
    "_id": "user123",
    "nickname": "张三",
    "avatar": "https://example.com/avatar.jpg",
    "registerDate": 1640995200000,
    "expirationDate": 1672531200000,
    "role": ["student"],
    "status": 0,
    "points": 1000,
    "experience": 2500,
    "isVip": true,
    "isForeverVip": false,
    "cardGroup": {
      "_id": "cardgroup123",
      "title": "英语基础词汇",
      "description": "适合初学者的英语词汇",
      "total": 100,
      "isPublic": 1,
      "tags": ["英语", "基础"],
      "createUser": {
        "_id": "creator456",
        "nickname": "李老师",
        "avatar": "https://example.com/teacher.jpg",
        "isVip": true
      }
    }
  }
}

3. 创建卡组

创建新的卡组,需要用户登录态。

接口地址: POST /createCardGroup

请求头:

uni-id-token: <用户认证token>
app-id: __UNI__235AE90
Content-Type: application/json

请求参数:

参数类型必填说明
titlestring卡组标题
descriptionstring卡组描述
tagsarray标签数组,如 ["英语", "基础"]
is_publicinteger是否公开:1-公开,0-私有,默认1
languageobject语言设置 { "front": "en", "back": "zh" }
is_vipinteger是否VIP卡组:1-是,0-否,默认0

响应示例:

{
  "errCode": 0,
  "errMsg": "success",
  "data": {
    "id": "659d5c0821821b50afc316db"
  }
}

4. 获取卡组 Token

获取指定卡组的访问凭证,需要用户登录态且为卡组创建者。

接口地址: POST /getCardGroupOpenApiToken

请求头:

uni-id-token: <用户认证token>
app-id: __UNI__235AE90
Content-Type: application/json

请求参数:

参数类型必填说明
cardGroupIdstring卡组ID

响应示例:

{
  "errCode": 0,
  "errMsg": "success",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  }
}

5. 重置卡组 Token

重置指定卡组的访问凭证,需要用户登录态且为卡组创建者。

接口地址: POST /resetCardGroupOpenApiToken

请求头:

uni-id-token: <用户认证token>
app-id: __UNI__235AE90
Content-Type: application/json

请求参数:

参数类型必填说明
cardGroupIdstring卡组ID

响应示例:

{
  "errCode": 0,
  "errMsg": "success",
  "data": {
    "cardGroupId": "659d5c0821821b50afc316db",
    "isSuccess": true,
    "openApiSecret": "new_secret_key"
  }
}

6. 创建卡片

向指定卡组添加新卡片。

接口地址: POST /createCard

请求头:

app-id: __UNI__235AE90
Content-Type: application/json

请求参数:

参数类型必填说明
cardGroupTokenstring卡组访问凭证
frontstring卡片正面内容
backstring卡片背面内容
imgsarray图片URL数组,最多9张
frontNotestring正面备注
backNotestring背面备注

响应示例:

{
  "errCode": 0,
  "errMsg": "success",
  "data": {
    "id": "659d5c0821821b50afc316db",
    "cardTotal": 10,
    "cardGroupId": "659d5c0821821b50afc316db"
  }
}

7. 获取卡组所有卡片

获取指定卡组内的所有卡片。

接口地址: POST /getAllCard

请求头:

uni-id-token: <用户认证token>
app-id: __UNI__235AE90
Content-Type: application/json

请求参数:

参数类型必填说明
cardGroupIdstring卡组ID

响应示例:

{
  "errCode": 0,
  "errMsg": "success",
  "data": {
    "count": 100,
    "cards": [
      {
        "id": "card123",
        "cardGroupId": "cardgroup123",
        "front": "Hello",
        "back": "你好",
        "imgs": [],
        "frontNote": "英语问候语",
        "backNote": "中文翻译",
        "createDate": 1640995200000,
        "status": 0
      }
    ]
  }
}

8. 获取不熟悉卡片列表

获取用户标记为不熟悉的卡片列表。

接口地址: POST /getAllUnfamiliarCard

请求头:

uni-id-token: <用户认证token>
app-id: __UNI__235AE90
Content-Type: application/json

请求参数:

参数类型必填说明
cardGroupIdstring卡组ID
onlyIsShowboolean是否只显示可见卡片,默认true
onlyShowTodayboolean是否只显示今天的不熟悉卡片,默认false

响应示例:

{
  "errCode": 0,
  "errMsg": "success",
  "data": {
    "count": 25,
    "cards": [
      {
        "_id": "unfamiliar123",
        "cardGroupId": "cardgroup123",
        "front": "difficult",
        "back": "困难的",
        "imgs": [],
        "frontNote": "形容词",
        "backNote": "表示困难",
        "createDate": 1640995200000,
        "status": 0
      }
    ]
  }
}

9. 获取学习小组成员列表

获取指定学习小组的成员列表,需要用户登录态。

接口地址: POST /getUserList

请求头:

uni-id-token: <用户认证token>
app-id: __UNI__235AE90
Content-Type: application/json

请求参数:

参数类型必填说明
learningGroupIdstring学习小组ID
pageinteger页码,默认1
pageSizeinteger每页数量,默认500
userStatusstring用户状态:join(已加入)/audit(待审核)/reject(拒绝),默认join

状态说明:

  • status: 0=已加入, 1=已退出, 2=待审核, 3=审核拒绝
  • source: create=创建者, join=加入者
  • isVip: 根据expirationDate自动计算

响应示例:

{
  "errCode": 0,
  "errMsg": "success",
  "data": {
    "total": 150,
    "list": [
      {
        "userId": "user123",
        "learningGroupId": "group456",
        "source": "join",
        "status": 0,
        "createDate": 1672531200000,
        "updateDate": 1672531200000,
        "user": {
          "_id": "user123",
          "nickname": "张三",
          "avatar": "https://example.com/avatar.jpg",
          "expirationDate": 1672531200000,
          "points": 100,
          "experience": 500,
          "isVip": true
        }
      }
    ]
  }
}

错误码说明

错误码说明
0成功
400参数错误
401认证失败
403权限不足
500服务器内部错误

常见错误信息

错误信息原因
卡片正反面不能为空创建卡片时front或back参数为空
卡组 Token 不能为空创建卡片时未提供cardGroupToken
Token 校验失败cardGroupToken无效或已过期
卡组不存在指定的卡组ID不存在
无权限操作当前用户不是卡组的创建者
卡组未开启 openApi卡组未生成openApiSecret

使用流程图

用户登录

获取 uni-id-token

创建卡组 → 获取 cardGroupId

获取卡组 Token → 获取 cardGroupToken

批量创建卡片

分享卡组给学生

注意事项

  1. App ID 必须:所有接口请求都需要在 Header 中携带 app-id: __UNI__235AE90
  2. Token 有效期:用户登录 token 有过期时间,需要处理续期
  3. 卡组 Token:是 JWT 格式,包含卡组 ID 和签名信息
  4. 图片上传:创建卡片时图片 URL 需要是可访问的网络地址
  5. 权限控制:只有卡组创建者才能获取和重置卡组 Token
  6. 频率限制:注意 API 调用频率,避免触发限制

获取帮助

遇到问题?联系我们:

  • 💬 微信公众号:磊子 X 麦喵单词卡
  • 💬 微信:34805850(备注:API)