作品
接入前提
获取调用API所需的TOKEN请参考鉴权
作品接口用于完成拼装版 API 的业务闭环:把生成内容落成 PPT 作品,并支持后续管理和导出。
作品生命周期
| 阶段 | 接口 | 说明 |
|---|---|---|
| 生成作品 | 作品生成 | 根据 taskId、模板等信息创建 PPT 作品 |
| 管理作品 | 作品列表 / 作品详情 / 作品重命名 / 作品删除 | 查询和维护已生成作品 |
| 导出作品 | 作品导出 / 作品导出结果 | 发起 PPT 导出并查询下载结果 |
作品导出是异步过程。作品导出 返回的是导出任务标识,不是最终文件地址;接入方需要继续调用 作品导出结果 获取下载链接。
作品生成
说明
| 接口描述 | 此接口通过任务id,与用户选择或动态匹配的模板数据的模板id生成PPT画布数据并保存作品。 | ||
| 接口地址 | /api/design/v2/save | 请求方式 | POST |
| 权限校验 | 是 | 请求参数 | json |
请求参数
请求示例
ts
curl --location --request POST 'https://co.aippt.cn/api/design/v2/save' \
--header 'x-api-key: {{apiKey}}' \
--header 'x-channel: {{channel}}' \
--header 'x-token: {{token}}' \
--data-urlencode 'name=毕业季' \
--data-urlencode 'task_id={{taskId}}' \
--data-urlencode 'template_id={{templateId}}' \
--data-urlencode 'template_type={{templateType}}' \
--data-urlencode 'layout_type={{layoutType}}' \
--data-urlencode 'layout_task_id={{layoutTaskID}}'响应内容
响应示例
ts
{
"code": 0,
"data": {
"id": 5634,
"name": "毕业季",
"cover_url": "https://aippt-domestic.aippt.com/aippt-api-server/personal/image/0/4/20231027163605yopnatz.jpeg",
"size": "960x540"
},
"msg": "ok"
}作品列表
说明
| 接口描述 | 此接口返回第三方用户作品列表 | ||
| 接口地址 | /api/design/list | 请求方式 | GET |
| 权限校验 | 是 | 请求参数 | json |
请求参数
请求示例
ts
curl --location 'https://co.aippt.cn/api/design/list?page=1&page_size=2&order=1' \
--header 'x-api-key: {{apiKey}}' \
--header 'x-channel: {{channel}}' \
--header 'x-token: {{token}}' \响应内容
响应示例
ts
{
"code": 0,
"data": {
"pagination": {
"total": 4,
"current_page": 1,
"page_size": 2
},
"list": [
{
"id": 16,
"user_id": 4,
"name": "实现财富自由的路径",
"cover_url": "https://aippt-domestic.aippt.com/aippt-api-server/personal/image/0/4/20231027163605yopnatz.jpeg",
"size": "960x540",
"canvas_url": "https://aippt-domestic.aippt.com/aippt-api-server/personal/other/0/4/20231027163606rsuzjsu.json",
"ai_data": "https://aippt-domestic.aippt.com/aippt-api-server/personal/other/0/4/20231027163607jqpzeag.json",
"storage_time": "2023-10-27 16:36:08",
"delete_time": "",
"auto_delete_time": 0,
"created_at": "2023-10-27 16:36:08",
"updated_at": "2023-10-27 16:36:08"
}
]
},
"msg": "ok"
}作品详情
说明
| 接口描述 | 此接口返回第三方用户作品详情 | ||
| 接口地址 | /api/design/info | 请求方式 | GET |
| 权限校验 | 是 | 请求参数 | json |
请求参数
请求示例
ts
curl --location 'https://co.aippt.cn/api/design/info?user_design_id=1' \
--header 'x-api-key: {{apiKey}}' \
--header 'x-channel: {{channel}}' \
--header 'x-token: {{token}}' \响应内容
响应示例
ts
{
"code": 0,
"data": {
"id": 1234,
"name": "个人年终总结",
"cover_url": "https://aippt-domestic.aippt.com/123.jpeg",
"task_id": 1234,
"created_at": "2024-09-27 19:42:43",
"storage_time": "2024-09-27 19:42:43",
"version": 1
},
"msg": "ok"
}作品导出
说明
| 接口描述 | 此接口会根据传入的参数生成一条导出任务并返回任务标识,需结合 导出结果 接口轮询返回结果。 | ||
| 接口地址 | /api/download/export/file | 请求方式 | POST |
| 权限校验 | 是 | 请求参数 | json |
请求参数
请求示例
ts
curl --location --request POST 'https://co.aippt.cn/api/download/export/file' \
--header 'x-api-key: {{apiKey}}' \
--header 'x-channel: {{channel}}' \
--header 'x-token: {{token}}' \
--data-urlencode 'edit=true' \
--data-urlencode 'files_to_zip=false' \
--data-urlencode 'format=ppt' \
--data-urlencode 'id=1'响应内容
响应示例
ts
{
"code": 0,
"data": "cdb8146b-746b-4006-bd40-19f597e85293", // 需结合 "作品导出结果" 进行下载
"msg": "操作成功"
}作品导出结果
说明
| 接口描述 | 此接口需要根据 作品导出 接口返回的任务标识轮询查询结果。 | ||
| 接口地址 | /api/download/export/file/result | 请求方式 | POST |
| 权限校验 | 是 | 请求参数 | json |
请求参数
请求示例
ts
curl --location --request POST 'https://co.aippt.cn/api/download/export/file/result' \
--header 'x-api-key: {{apiKey}}' \
--header 'x-channel: {{channel}}' \
--header 'x-token: {{token}}' \
--data-urlencode 'task_key={{taskKey}}'响应内容
响应示例
ts
{
"code": 0,
"data": [
"https://aippt-domestic.aippt.com/node-server/aippt/2024-01-29/653680052115yf23h1.ppt?Expires=1706537538&OSSAccessKeyId=LTAI5tEC4LwH9eYcd5ANuTnS&Signature=u1sUfdTYQVLWWMq6bCzcP%2BE9IRo%3D&response-content-disposition=attachment%3Bfilename%2A%3DUTF-8%27%27%25E6%25AF%2595%25E4%25B8%259A%25E5%25AD%25A3.ppt"
],
"msg": "导出成功"
}导出处理建议
- 调用
作品导出后保存返回的导出任务标识。 - 使用导出任务标识调用
作品导出结果。 - 如果导出结果暂未生成,按业务节奏继续查询,避免高频轮询。
- 如果下载链接过期,重新发起导出或重新查询导出结果。
作品重命名
说明
| 接口描述 | 第三方用户修改作品名称 | ||
| 接口地址 | /api/design/save/name | 请求方式 | POST |
| 权限校验 | 是 | 请求参数 | json |
请求参数
请求示例
ts
curl --location --request POST 'https://co.aippt.cn/api/design/save/name' \
--header 'x-api-key: {{apiKey}}' \
--header 'x-channel: {{channel}}' \
--header 'x-token: {{token}}' \
--data-urlencode 'name=作品重命名' \
--data-urlencode 'user_design_id={{designId}}'响应内容
响应示例
ts
{
"code": 0,
"data": {
"name": "重命名测试"
},
"msg": "ok"
}作品删除
说明
| 接口描述 | 第三方用户删除作品 | ||
| 接口地址 | /api/design/delete | 请求方式 | POST |
| 权限校验 | 是 | 请求参数 | json |
请求参数
请求示例
ts
curl --location --request POST 'https://co.aippt.cn/api/design/delete' \
--header 'x-api-key: {{apiKey}}' \
--header 'x-channel: {{channel}}' \
--header 'x-token: {{token}}' \
--data-urlencode 'user_design_id={{designId}}'响应内容
响应示例
ts
{
"code": 0,
"data": [],
"msg": "ok"
}