Files
htsy-skill/references/api-material.md
T

39 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 素材与话术库
阅读本文件处理素材列表、素材增删改查、获取 OSS 上传 token、话术库、话术分类、话术标签等操作。素材内容里的消息结构见 [api-common.md](api-common.md)。
## 素材与话术接口
| 目标 | 接口 | 请求字段 | 常用返回字段 |
| --- | --- | --- | --- |
| 素材上传 | `POST /api/material/upload` | `type`(string, 必填,素材类型)`material`(bytes, 必填,素材) | `link`(string,素材地址) |
| 列表 | `POST /api/material/list` | `page`(int64, 必填,page)`pageSize`(int64, 必填,pageSize)`name`(string, 可选,素材名字搜索);`type`(string, 必填,类型)`isQy`(bool, 可选,是否属于企业) | `list`(repeated MaterialInfo,计划列表)`page`(int64page)`pageSize`(int64pageSize)`total`(int64,总数)`last`(bool,是否最后) |
| 添加 | `POST /api/material/add` | `id`(int64, 可选,素材id)`type`(string, 必填,素材类型)`name`(string, 必填,素材名字)`text`(MessageText, 可选,文本消息 text)`image`(MessageImage, 可选,图片消息 image)`sticker`(MessageSticker, 可选,表情消息 sticker)`video`(MessageVideo, 可选,视频消息 video)`miniProgram`(MessageMiniProgram, 可选,小程序 miniProgram)`link`(MessageLink, 可选,链接 link)`audio`(MessageAudio, 可选,音频 audio)`compositeImage`(MessageCompositeImage, 可选,合成图 compositeImage)`inviteGroup`(MessageInviteGroup, 可选,入群邀请 inviteGroup)`goods`(MessageGoods, 可选,商品 goods)`freeVideo`(MessageFreeVideo, 可选,视频号 freeVideo)`liveBroadcastRoom`(MessageLiveBroadcastRoom, 可选,直播间 liveBroadcastRoom)`file`(MessageFile, 可选,文件 file)`note`(MessageNote, 可选,笔记 note)`collection`(repeated Collection, 可选,合集 collection)`materialGroup`(repeated MaterialDialogueContent, 可选,素材组List)`isQy`(bool, 可选,是否属于企业);... 另有 1 个字段 | `id`(int64) |
| 删除 | `POST /api/material/del` | `ids`(repeated int64, 必填,删除的ids)`type`(string, 必填,素材类型) | 空对象或无业务数据 |
| 更新 | `POST /api/material/update` | `id`(int64, 可选,素材id)`type`(string, 必填,素材类型)`name`(string, 必填,素材名字)`text`(MessageText, 可选,文本消息 text)`image`(MessageImage, 可选,图片消息 image)`sticker`(MessageSticker, 可选,表情消息 sticker)`video`(MessageVideo, 可选,视频消息 video)`miniProgram`(MessageMiniProgram, 可选,小程序 miniProgram)`link`(MessageLink, 可选,链接 link)`audio`(MessageAudio, 可选,音频 audio)`compositeImage`(MessageCompositeImage, 可选,合成图 compositeImage)`inviteGroup`(MessageInviteGroup, 可选,入群邀请 inviteGroup)`goods`(MessageGoods, 可选,商品 goods)`freeVideo`(MessageFreeVideo, 可选,视频号 freeVideo)`liveBroadcastRoom`(MessageLiveBroadcastRoom, 可选,直播间 liveBroadcastRoom)`file`(MessageFile, 可选,文件 file)`note`(MessageNote, 可选,笔记 note)`collection`(repeated Collection, 可选,合集 collection)`materialGroup`(repeated MaterialDialogueContent, 可选,素材组List)`isQy`(bool, 可选,是否属于企业);... 另有 1 个字段 | 空对象或无业务数据 |
| 获取发送给机器人自己的素材 | `POST /api/material/get/byBotOwn` | `botId`(int64, 必填,机器人id)`msgType`(string, 必填,msgType)`botType`(int32, 必填,类型 1 个微 2企微);`friendId`(int64, 必填,客户id) | `msgType`(string,消息类型)`role`(string,角色名)`delayTime`(int64,延迟时间 单位ms如 1000ms)`delayType`(string,延迟时间单位 s 秒 m 分 h 小时);`text`(MessageText,文本消息 text)`image`(MessageImage,图片消息 image)`sticker`(MessageSticker,表情消息 sticker)`video`(MessageVideo,视频消息 video)`miniProgram`(MessageMiniProgram,小程序 miniProgram)`link`(MessageLink,链接 link)... |
| 获取单个素材信息 | `POST /api/material/info` | `id`(int64, 必填,id)`msgType`(string, 必填,msgType) | `id`(int64,素材id)`type`(string,素材类型)`name`(string,素材名字)`text`(MessageText,文本消息 text)`image`(MessageImage,图片消息 image)`sticker`(MessageSticker,表情消息 sticker)`video`(MessageVideo,视频消息 video)`miniProgram`(MessageMiniProgram,小程序 miniProgram)`link`(MessageLink,链接 link)`audio`(MessageAudio,音频 audio)... |
| 话术库创建 | `POST /api/material/dialogue/add` | `name`(string, 必填,素材名字)`content`(repeated MaterialDialogueContent, 可选,素材内容)`categoryId`(int64, 可选,分类id)`isQy`(bool, 可选,是否属于企业) | `id`(int64id) |
| 话术库列表 | `POST /api/material/dialogue/list` | `page`(int64, 必填,page)`pageSize`(int64, 必填,pageSize)`name`(string, 可选,素材名字搜索);`categoryId`(int64, 可选,按分类搜索)`tagIds`(repeated int64, 可选,按标签搜索)`isQy`(bool, 可选,是否属于企业) | `list`(repeated MaterialDialogueListItem,话术库列表)`page`(int64page)`pageSize`(int64pageSize)`total`(int64,总数)`last`(bool,是否最后) |
| 话术库删除 | `POST /api/material/dialogue/del` | `id`(int64, 可选,id) | 空对象或无业务数据 |
| 话术库更新 | `POST /api/material/dialogue/update` | `id`(int64, 可选,id)`name`(string, 必填,素材名字)`content`(repeated MaterialDialogueContent, 可选,素材内容)`categoryId`(int64, 可选,分类id)`isQy`(bool, 可选,是否属于企业) | 空对象或无业务数据 |
| 话术库分类创建 | `POST /api/material/dialogue/category/add` | `name`(string, 可选,类别名)`isQy`(bool, 可选,是否属于企业) | `id`(int64id) |
| 话术库分类列表 | `POST /api/material/dialogue/category/list` | `isQy`(bool, 可选,是否属于企业) | `list`(repeated MaterialDialogueCategoryItem) |
| 话术库分类更新 | `POST /api/material/dialogue/category/update` | `id`(int64, 可选)`name`(string, 可选) | 空对象或无业务数据 |
| 话术库分类删除 | `POST /api/material/dialogue/category/del` | `id`(int64, 可选) | 空对象或无业务数据 |
| 话术库标签创建 | `POST /api/material/dialogue/tag/add` | `name`(string, 可选,类别名) | `id`(int64id) |
| 话术库标签列表 | `POST /api/material/dialogue/tag/list` | `{}` | `list`(repeated MaterialDialogueTagItem) |
| 话术库标签更新 | `POST /api/material/dialogue/tag/update` | `id`(int64, 可选)`name`(string, 可选) | 空对象或无业务数据 |
| 话术库分类删除 | `POST /api/material/dialogue/tag/del` | `id`(int64, 可选) | 空对象或无业务数据 |
| 为话术库设置分类或者标签 | `POST /api/material/dialogue/setCategoryOrTag` | `dialogueId`(repeated int64, 必填,素材id)`categoryId`(int64, 可选,类别id)`tagIds`(repeated int64, 可选,标签id)`needDelTagIds`(repeated int64, 可选,要删除的标签id) | 空对象或无业务数据 |
| 获取oss上传的token,有效期5分钟 | `POST /api/material/getOssToken` | `type`(string, 必填,素材类型 image video等)`original`(string, 必填,来源 messagePush material等) | `accessID`(string,阿里云accessid)`host`(string,阿里云host)`policy`(string,阿里云policy)`signature`(string,阿里云signature)`dir`(string,阿里云文件目录)`expire`(int64,阿里云expire 毫秒)`domain`(string,阿里云domain) |
## 常用示例
```bash
htsy-cli call /api/material/list -d '{"page":1,"pageSize":20,"type":"image"}'
htsy-cli call /api/material/add -d '{"type":"text","name":"问候语","text":{"content":"你好"}}'
htsy-cli call /api/material/dialogue/list -d '{"page":1,"pageSize":20}'
```