gongxiangp2/docs/钉钉素材库接口对接文档.md
2026-05-07 16:37:22 +08:00

6.0 KiB
Raw Blame History

钉钉素材库接口对接文档

1. 对接目标

钉钉流程填写以下 5 个字段后,调用素材库接口判断是否有符合条件的素材:

  • 需求类型
  • 品牌
  • 场景类别
  • 产品类别
  • SPU

返回规则:

  • 如果有符合素材,返回一个可用地址
  • 如果没有符合素材,返回:该SPU下暂无素材

2. 字段对应关系

钉钉字段和素材库字段对应如下:

  • 需求类型 = materialType(素材类型)
  • 品牌 = categoryName(店铺)
  • 场景类别 = sceneName
  • 产品类别 = productCategoryName
  • SPU = productModel

注意:

  • “品牌”在本项目里实际对应的是“店铺”
  • “需求类型”实际对应的是“素材类型”

3. 鉴权方式

结论:钉钉用户提交表单时,不需要、也不应该手动输入请求头。

建议钉钉负责人把密钥固定配置在接口地址里,用户只填写业务字段。

本次改动后,钉钉这两个接口同时支持两种鉴权方式:

  • 推荐给钉钉低代码流程:固定 URL 参数 apiKey
  • 推荐给程序系统对接:固定请求头 X-API-Key

两种方式任选一种即可,不需要同时配置。

钉钉流程推荐使用:

apiKey=5073534d7a59babbc45397a8eac5943b

也就是把 apiKey 作为固定 URL 参数放到接口地址中。

系统对系统调用仍然支持请求头方式:

X-API-Key: 5073534d7a59babbc45397a8eac5943b

说明:

  • 当前生产可用 Key 名称:AI生图系统
  • 当前生产可用 Key:5073534d7a59babbc45397a8eac5943b
  • 钉钉低代码流程如果不方便固定请求头,就使用 URL 参数 apiKey
  • apiKey 由钉钉流程管理员固定配置,不暴露给普通填表用户

钉钉负责人配置时要注意:

  • apiKey 是固定参数,不要做成表单字段
  • 普通用户只需要填写或选择:需求类型、品牌、场景类别、产品类别、SPU
  • 如果钉钉侧有“连接器公共请求头”或“固定请求头”配置,也可以把 X-API-Key 配在那里
  • 如果没有固定请求头能力,就直接使用本文档里的 ?apiKey=... 地址

4. 接口 1:获取下拉选项

4.1 用途

给钉钉流程生成下拉选项,避免手填出错。

4.2 请求信息

钉钉推荐配置地址:

GET https://sc.jiansun.vip/api/external/dingtalk-material-options?apiKey=5073534d7a59babbc45397a8eac5943b

不需要用户手填请求头。

如果钉钉侧可以配置固定请求头,也可以继续用:

X-API-Key: 5073534d7a59babbc45397a8eac5943b

4.3 返回示例

{
  "success": true,
  "data": {
    "requirementTypes": ["任务-详情", "任务-页面", "任务-3D原图"],
    "brands": ["顾家家居", "林氏木业"],
    "sceneCategories": ["客厅", "卧室"],
    "productCategories": ["沙发", "床"]
  }
}

4.4 字段说明

  • requirementTypes:需求类型下拉
  • brands:品牌下拉,实际就是店铺
  • sceneCategories:场景类别下拉
  • productCategories:产品类别下拉

4.5 接入建议

钉钉流程应先调用这个接口,把以下字段做成下拉:

  • 需求类型
  • 品牌
  • 场景类别
  • 产品类别

不建议手填。


5. 接口 2:查询是否有素材

5.1 用途

用户选择完 5 个字段后,调用这个接口判断有没有素材。

5.2 请求信息

钉钉推荐配置地址:

GET https://sc.jiansun.vip/api/external/dingtalk-material-match?apiKey=5073534d7a59babbc45397a8eac5943b

不需要用户手填请求头。

如果钉钉侧可以配置固定请求头,也可以继续用:

X-API-Key: 5073534d7a59babbc45397a8eac5943b

请求参数:

  • apiKey:固定鉴权密钥,由钉钉负责人固定配置,不给普通用户填写
  • requirementType:需求类型
  • brand:品牌(实际是店铺)
  • sceneCategory:场景类别
  • productCategory:产品类别
  • spu:SPU

5.3 请求示例

GET https://sc.jiansun.vip/api/external/dingtalk-material-match?apiKey=5073534d7a59babbc45397a8eac5943b&requirementType=任务-详情&brand=顾家家居&sceneCategory=客厅&productCategory=沙发&spu=SPU001

6. 查询接口返回示例

6.1 命中素材时

{
  "success": true,
  "data": {
    "matched": true,
    "message": "查询成功",
    "spu": "SPU001",
    "requirementType": "任务-详情",
    "brand": "顾家家居",
    "sceneCategory": "客厅",
    "productCategory": "沙发",
    "address": "https://sc.jiansun.vip/uploads/previews/spu001.jpg",
    "materialId": "material-1",
    "updatedAt": "2026-04-30T08:00:00.000Z"
  }
}

钉钉侧重点关注:

  • matched = true
  • address 有值

6.2 未命中素材时

{
  "success": true,
  "data": {
    "matched": false,
    "message": "该SPU下暂无素材",
    "spu": "SPU001",
    "requirementType": "任务-详情",
    "brand": "顾家家居",
    "sceneCategory": "客厅",
    "productCategory": "沙发",
    "address": null
  }
}

钉钉侧重点关注:

  • matched = false
  • message = 该SPU下暂无素材

7. 推荐接入顺序

推荐按以下顺序接入:

  1. 先调用“下拉选项接口”
  2. 用返回结果生成钉钉表单下拉
  3. 用户选择完 5 个字段后
  4. 再调用“素材匹配接口”
  5. 根据 matched 和 address 做后续流程判断

8. 注意事项

  • SPU 为必填
  • 其余字段建议全部走下拉,不要手输
  • “品牌”不是独立品牌库字段,实际对应店铺
  • “需求类型”不是自由文本,实际对应素材类型
  • 如果接口返回 INVALID_API_KEY,说明 apiKey 参数或 X-API-Key 请求头没有正确配置
  • 普通填表用户不应看到 apiKey 字段;它应由钉钉流程管理员固定在接口地址或连接器配置里

9. 生产环境信息

  • 生产域名:https://sc.jiansun.vip
  • 下拉选项接口:/api/external/dingtalk-material-options
  • 素材匹配接口:/api/external/dingtalk-material-match