# FunyMeeAI V2 客户端接入指引 **生成时间**:2026-03-25 17:39 --- ## 通用信息 | 项目 | 值 | |------|-----| | 加密方式 | AES-128-ECB, PKCS5Padding, Base64 | | AES Key | `gLYeTRc2uNTcNH8e` | | 预发域名 | `pre-ai.funymee.space` | | 生产域名 | `ai.funymee.space` | | 代理入口 | `POST {baseUrl}/workshop/lounge/hub/playground` | | 包名 | `com.funymeeai.app` | ## 加密流程 ``` 构造业务参数 | v 字段名映射 (body + params + headers) | v V2包装 (body only) | v JSON序列化 | v AES + Base64 | v 填入代理请求 b/p 参数 | v POST 代理入口 ``` ## 代理请求结构 所有接口统一 POST 到代理入口,请求体结构如下: ```json { "humor_level": "FunyMeeAI", // appId 明文 "comedy_style": "", // AES(原始 path) → Base64 "avatar_mode": "", // AES("POST" 或 "GET") → Base64 "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 "clip_duration": "", // AES(V2包装后的业务数据) → Base64 "sample_rate": "<随机4-8位字母数字,AES加密→Base64>", // 噪音字段 "watermark_id": "<随机4-8位字母数字,AES加密→Base64>", // 噪音字段 "geo_radius": "<随机4-8位字母数字,AES加密→Base64>", // 噪音字段 "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音字段 } ``` > 即使原始接口为 GET(无请求体),走代理后也统一使用 POST,b 参数仍需传入 V2 包装后的空业务体。 ## V2 包装结构 业务数据经字段映射后,按以下结构包装: ```json { "shell": 2, // 固定值 "capsule": { "envelope": { "container": { /* 映射后的业务字段 */ } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` --- ## 认证 & 账号 > 无需登录态 ### 设备登录(快速登录) `POST /v1/user/fast_login` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------------| | `satire` | `ch` | 渠道 | | `stakeholder` | `pkg` | 应用包名(必填) | | `revenue` | `type` | referrer类型(必填, af(AF归因)/fb(FB归因,默认)/gg(google归因)/ios_adjust/android_adjust)| | `sticker` | `app` | 应用类型(必填,iOS: HIOS / Android: HAndroid) | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `link` | `referer` | string | 归因信息,如 | | `mandate` | `sign` | string | 签名,MD5(deviceId)大写32位(必填) | | `stage` | `deviceId` | string | 设备ID(必填) | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // fast_login — 设备登录(快速登录) // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "vx4tAJaFHyC0sCb6jpr+iKBq/uqi2FaadQnIqopsLYI=", // AES(/v1/user/fast_login) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "link": "", // referer (string) 归因信息,如 "mandate": "", // sign (string) 签名,MD5(deviceId)大写32位(必填) "stage": "" // deviceId (string) 设备ID(必填) } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "download": "", // extConfig (string) 客户端界面配置下发 "revenue": "", // type (string) 类型 "stylize": { // appFbConfig (object) 应用FB配置 "glow": "", // fbClientId (string) Facebook应用ID "blur": "" // fbClientToken (string) Facebook客户端Token }, "reauthenticate": "", // usign (string) 用户签名 "publish": "", // countryCode (string) 国家代码 "swap": "", // creditsRecordUrl (string) 积分记录URL "chart": "", // tgId (string) Telegram ID "export": 0, // credit (int) 积分余额 "spend": "", // tgName (string) Telegram 用户名 "draft": "", // email (string) 邮箱 "profile": {}, // ext (object) 扩展信息 "convert": false, // forcePayCenter (boolean) 是否强制跳转支付中心 "reboot": { // t2IConfig (object) T2I配置 "padding": {}, // credits (object) 积分配置(key为任务类型,value为积分数) "microscopic": [ // templates (array) 提示词模板列表 { "circular": "", // img (string) 示例图片URL "appointment": "" // prompt (string) 提示词内容 } ] }, "rank": { // h5UrlConfig (object) H5 URL配置 "altitude": "", // url (string) H5页面URL "coverage": "" // launchImgUrl (string) 启动图URL }, "schedule": "", // payCenterUrl (string) 支付中心URL "tag": 0, // freeBlurTimes (int) 免费去模糊次数 "frequency": "", // avatar (string) 头像URL "supplement": "", // userName (string) 用户名 "enhance": false, // firstRegister (boolean) 是否首次注册 "symposium": "", // userId (string) 用户ID "restore": false, // isVip (boolean) 是否VIP "enqueue": [], // tags (array) 用户标签 "label": 0, // freeTimes (int) 免费次数 "disambiguate": "", // userToken (string) 用户登录token "recognize": 0, // subScribeValidTime (int) 订阅有效时间戳 "wallet": 0 // status (int) 用户状态 } } ``` --- ### Google登录 `POST /v1/user/login/google` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `sticker` | `app` | string | 应用标识(必填) | | `link` | `referer` | string | 归因信息,如 utm_source=googleplay | | `socket` | `inviteBy` | string | 邀请人 | | `scene` | `code` | string | OAuth授权码 | | `taskforce` | `verifyCode` | string | 验证码 | | `satire` | `ch` | string | 渠道号 | | `frequency` | `avatar` | string | 头像URL | | `revenue` | `type` | string | 类型 | | `supplement` | `userName` | string | 用户名 | | `symposium` | `userId` | string | 用户ID | | `stage` | `deviceId` | string | 设备ID | | `sponsor` | `phone` | string | 手机号 | | `theme` | `domain` | string | 域名 | | `campus` | `keepUserId` | string | 保留用户ID | | `parody` | `campaignInfo` | string | 活动信息 | | `bitrate` | `state` | string | OAuth state | | `complex` | `refererType` | string | 归因类型 | | `draft` | `email` | string | 邮箱 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // google — Google登录 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "s1CzqpH5wzPJf21sqStamHzcIP0EBYSPFMW5Gcf1C3w=", // AES(/v1/user/login/google) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "sticker": "", // app (string) 应用标识(必填) "link": "", // referer (string) 归因信息,如 utm_source=googleplay "socket": "", // inviteBy (string) 邀请人 "scene": "", // code (string) OAuth授权码 "taskforce": "", // verifyCode (string) 验证码 "satire": "", // ch (string) 渠道号 "frequency": "", // avatar (string) 头像URL "revenue": "", // type (string) 类型 "supplement": "", // userName (string) 用户名 "symposium": "", // userId (string) 用户ID "stage": "", // deviceId (string) 设备ID "sponsor": "", // phone (string) 手机号 "theme": "", // domain (string) 域名 "campus": "", // keepUserId (string) 保留用户ID "parody": "", // campaignInfo (string) 活动信息 "bitrate": "", // state (string) OAuth state "complex": "", // refererType (string) 归因类型 "draft": "" // email (string) 邮箱 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "download": "", // extConfig (string) 客户端界面配置下发 "revenue": "", // type (string) 类型 "stylize": { // appFbConfig (object) 应用FB配置 "glow": "", // fbClientId (string) Facebook应用ID "blur": "" // fbClientToken (string) Facebook客户端Token }, "reauthenticate": "", // usign (string) 用户签名 "publish": "", // countryCode (string) 国家代码 "swap": "", // creditsRecordUrl (string) 积分记录URL "chart": "", // tgId (string) Telegram ID "export": 0, // credit (int) 积分余额 "spend": "", // tgName (string) Telegram 用户名 "draft": "", // email (string) 邮箱 "profile": {}, // ext (object) 扩展信息 "convert": false, // forcePayCenter (boolean) 是否强制跳转支付中心 "reboot": { // t2IConfig (object) T2I配置 "padding": {}, // credits (object) 积分配置(key为任务类型,value为积分数) "microscopic": [ // templates (array) 提示词模板列表 { "circular": "", // img (string) 示例图片URL "appointment": "" // prompt (string) 提示词内容 } ] }, "rank": { // h5UrlConfig (object) H5 URL配置 "altitude": "", // url (string) H5页面URL "coverage": "" // launchImgUrl (string) 启动图URL }, "schedule": "", // payCenterUrl (string) 支付中心URL "tag": 0, // freeBlurTimes (int) 免费去模糊次数 "frequency": "", // avatar (string) 头像URL "supplement": "", // userName (string) 用户名 "enhance": false, // firstRegister (boolean) 是否首次注册 "symposium": "", // userId (string) 用户ID "restore": false, // isVip (boolean) 是否VIP "enqueue": [], // tags (array) 用户标签 "label": 0, // freeTimes (int) 免费次数 "disambiguate": "", // userToken (string) 用户登录token "recognize": 0, // subScribeValidTime (int) 订阅有效时间戳 "wallet": 0 // status (int) 用户状态 } } ``` --- ### Apple登录 `POST /v1/user/login/apple` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `sticker` | `app` | string | 应用标识(必填) | | `link` | `referer` | string | 归因信息,如 utm_source=googleplay | | `socket` | `inviteBy` | string | 邀请人 | | `scene` | `code` | string | OAuth授权码 | | `taskforce` | `verifyCode` | string | 验证码 | | `satire` | `ch` | string | 渠道号 | | `frequency` | `avatar` | string | 头像URL | | `revenue` | `type` | string | 类型 | | `supplement` | `userName` | string | 用户名 | | `symposium` | `userId` | string | 用户ID | | `stage` | `deviceId` | string | 设备ID | | `sponsor` | `phone` | string | 手机号 | | `theme` | `domain` | string | 域名 | | `campus` | `keepUserId` | string | 保留用户ID | | `parody` | `campaignInfo` | string | 活动信息 | | `bitrate` | `state` | string | OAuth state | | `complex` | `refererType` | string | 归因类型 | | `draft` | `email` | string | 邮箱 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // apple — Apple登录 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "jGhmNKJBhLIFhBiEzhPjHiink7QU+MJfG5dQyUrWCKg=", // AES(/v1/user/login/apple) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "sticker": "", // app (string) 应用标识(必填) "link": "", // referer (string) 归因信息,如 utm_source=googleplay "socket": "", // inviteBy (string) 邀请人 "scene": "", // code (string) OAuth授权码 "taskforce": "", // verifyCode (string) 验证码 "satire": "", // ch (string) 渠道号 "frequency": "", // avatar (string) 头像URL "revenue": "", // type (string) 类型 "supplement": "", // userName (string) 用户名 "symposium": "", // userId (string) 用户ID "stage": "", // deviceId (string) 设备ID "sponsor": "", // phone (string) 手机号 "theme": "", // domain (string) 域名 "campus": "", // keepUserId (string) 保留用户ID "parody": "", // campaignInfo (string) 活动信息 "bitrate": "", // state (string) OAuth state "complex": "", // refererType (string) 归因类型 "draft": "" // email (string) 邮箱 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "download": "", // extConfig (string) 客户端界面配置下发 "revenue": "", // type (string) 类型 "stylize": { // appFbConfig (object) 应用FB配置 "glow": "", // fbClientId (string) Facebook应用ID "blur": "" // fbClientToken (string) Facebook客户端Token }, "reauthenticate": "", // usign (string) 用户签名 "publish": "", // countryCode (string) 国家代码 "swap": "", // creditsRecordUrl (string) 积分记录URL "chart": "", // tgId (string) Telegram ID "export": 0, // credit (int) 积分余额 "spend": "", // tgName (string) Telegram 用户名 "draft": "", // email (string) 邮箱 "profile": {}, // ext (object) 扩展信息 "convert": false, // forcePayCenter (boolean) 是否强制跳转支付中心 "reboot": { // t2IConfig (object) T2I配置 "padding": {}, // credits (object) 积分配置(key为任务类型,value为积分数) "microscopic": [ // templates (array) 提示词模板列表 { "circular": "", // img (string) 示例图片URL "appointment": "" // prompt (string) 提示词内容 } ] }, "rank": { // h5UrlConfig (object) H5 URL配置 "altitude": "", // url (string) H5页面URL "coverage": "" // launchImgUrl (string) 启动图URL }, "schedule": "", // payCenterUrl (string) 支付中心URL "tag": 0, // freeBlurTimes (int) 免费去模糊次数 "frequency": "", // avatar (string) 头像URL "supplement": "", // userName (string) 用户名 "enhance": false, // firstRegister (boolean) 是否首次注册 "symposium": "", // userId (string) 用户ID "restore": false, // isVip (boolean) 是否VIP "enqueue": [], // tags (array) 用户标签 "label": 0, // freeTimes (int) 免费次数 "disambiguate": "", // userToken (string) 用户登录token "recognize": 0, // subScribeValidTime (int) 订阅有效时间戳 "wallet": 0 // status (int) 用户状态 } } ``` --- ### 归因上报 `POST /v1/user/referrer` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | | `revenue` | `type` | 类型(必填, af(AF归因)/fb(FB归因,默认)/gg(google归因)/ios_adjust/android_adjust) | | `stakeholder` | `pkg` | 应用包名(必填) | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `link` | `referer` | string | 归因信息,如 utm_source=googleplay | | `stage` | `deviceId` | string | 设备ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // referrer — 归因上报 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "Ex8V5pMk8AAx0dZ2bCk95x3hgLH8TW7xc3MeiufRNxQ=", // AES(/v1/user/referrer) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "link": "", // referer (string) 归因信息,如 utm_source=googleplay "stage": "" // deviceId (string) 设备ID } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "vote": "", // hint (string) "revenue": "" // type (string) } } ``` --- ### 获取App语言配置 `GET /v1/config/app-language` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `venture` | `lang` | 语言代码 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // app_language — 获取App语言配置 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "llvWqZObXf9L4Ni7w+J6Hi88SoHxIgt0aNCtC6OSIGk=", // AES(/v1/config/app-language) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "edit": "" // config (string) 语言配置JSON } } ``` --- --- ## 用户信息 > 需要登录态 ### 获取用户账户信息 `GET /v1/user/account` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // account — 获取用户账户信息 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "sMpVMOBtMbKmw+ovfLYAYHpN28WVH83mwh40owgUCrU=", // AES(/v1/user/account) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "download": "", // extConfig (string) 客户端界面配置下发 "revenue": "", // type (string) 类型 "stylize": { // appFbConfig (object) 应用FB配置 "glow": "", // fbClientId (string) Facebook应用ID "blur": "" // fbClientToken (string) Facebook客户端Token }, "reauthenticate": "", // usign (string) 用户签名 "publish": "", // countryCode (string) 国家代码 "swap": "", // creditsRecordUrl (string) 积分记录URL "chart": "", // tgId (string) Telegram ID "export": 0, // credit (int) 积分余额 "spend": "", // tgName (string) Telegram 用户名 "draft": "", // email (string) 邮箱 "profile": {}, // ext (object) 扩展信息 "convert": false, // forcePayCenter (boolean) 是否强制跳转支付中心 "reboot": { // t2IConfig (object) T2I配置 "padding": {}, // credits (object) 积分配置(key为任务类型,value为积分数) "microscopic": [ // templates (array) 提示词模板列表 { "circular": "", // img (string) 示例图片URL "appointment": "" // prompt (string) 提示词内容 } ] }, "rank": { // h5UrlConfig (object) H5 URL配置 "altitude": "", // url (string) H5页面URL "coverage": "" // launchImgUrl (string) 启动图URL }, "schedule": "", // payCenterUrl (string) 支付中心URL "tag": 0, // freeBlurTimes (int) 免费去模糊次数 "frequency": "", // avatar (string) 头像URL "supplement": "", // userName (string) 用户名 "enhance": false, // firstRegister (boolean) 是否首次注册 "symposium": "", // userId (string) 用户ID "restore": false, // isVip (boolean) 是否VIP "enqueue": [], // tags (array) 用户标签 "label": 0, // freeTimes (int) 免费次数 "disambiguate": "", // userToken (string) 用户登录token "recognize": 0, // subScribeValidTime (int) 订阅有效时间戳 "wallet": 0 // status (int) 用户状态 } } ``` --- ### 获取用户通用信息 `GET /v1/user/common_info` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `filter` | `client` | 客户端标识 | | `symposium` | `userId` | 用户ID | | `satire` | `ch` | 渠道号 | | `socket` | `inviteBy` | 邀请人 | | `stage` | `deviceId` | 设备ID | | `template` | `clientId` | 客户端ID | | `stakeholder` | `pkg` | 应用包名(必填) | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // common_info — 获取用户通用信息 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "9PTlQdZS4YcQpCMav68kBkwwLZRZHABr3W3WHw7bb54=", // AES(/v1/user/common_info) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "download": "", // extConfig (string) 客户端界面配置下发 "revenue": "", // type (string) 类型 "stylize": { // appFbConfig (object) 应用FB配置 "glow": "", // fbClientId (string) Facebook应用ID "blur": "" // fbClientToken (string) Facebook客户端Token }, "reauthenticate": "", // usign (string) 用户签名 "publish": "", // countryCode (string) 国家代码 "swap": "", // creditsRecordUrl (string) 积分记录URL "chart": "", // tgId (string) Telegram ID "export": 0, // credit (int) 积分余额 "spend": "", // tgName (string) Telegram 用户名 "draft": "", // email (string) 邮箱 "profile": {}, // ext (object) 扩展信息 "convert": false, // forcePayCenter (boolean) 是否强制跳转支付中心 "reboot": { // t2IConfig (object) T2I配置 "padding": {}, // credits (object) 积分配置(key为任务类型,value为积分数) "microscopic": [ // templates (array) 提示词模板列表 { "circular": "", // img (string) 示例图片URL "appointment": "" // prompt (string) 提示词内容 } ] }, "rank": { // h5UrlConfig (object) H5 URL配置 "altitude": "", // url (string) H5页面URL "coverage": "" // launchImgUrl (string) 启动图URL }, "schedule": "", // payCenterUrl (string) 支付中心URL "tag": 0, // freeBlurTimes (int) 免费去模糊次数 "frequency": "", // avatar (string) 头像URL "supplement": "", // userName (string) 用户名 "enhance": false, // firstRegister (boolean) 是否首次注册 "symposium": "", // userId (string) 用户ID "restore": false, // isVip (boolean) 是否VIP "enqueue": [], // tags (array) 用户标签 "label": 0, // freeTimes (int) 免费次数 "disambiguate": "", // userToken (string) 用户登录token "recognize": 0, // subScribeValidTime (int) 订阅有效时间戳 "wallet": 0 // status (int) 用户状态 } } ``` --- ### 获取积分页面信息 `GET /v1/user/credits-page` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `session` | `page` | 页码 *(默认值: "1")* | | `seminar` | `size` | 每页条数 *(默认值: "10")* | | `revenue` | `type` | 积分类型 *(默认值: "1")* | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // credits_page — 获取积分页面信息 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "549Xw0yFnJjZHKSBVllqWCG6fcbWmpoxxu/64gX4aO0=", // AES(/v1/user/credits-page) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "insert": 0, // total (int) 总条数 "blend": 0, // current (int) 当前页 "loop": 0, // pages (int) 总页数 "seminar": 0, // size (int) 每页大小 "create": [ // records (array) 积分记录列表 { "keepalive": "", // subBusinessType (string) 子业务类型 "padding": 0, // credits (int) 积分数 "typography": 0, // createTime (long) 创建时间 "angle": "", // businessId (string) 业务ID "revenue": 0, // type (int) 类型,1=增加,2=扣除 "offset": "" // businessType (string) 业务类型 } ] } } ``` --- ### 获取用户支付记录 `GET /v1/user/payments` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // payments — 获取用户支付记录 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "MOxwcmOt+UPU+kiKngEkzzWKd2Q1pq8VD215J8A3r0I=", // AES(/v1/user/payments) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": [ // data (array) 支付记录列表 { "cartoon": 0, // amount (int) 支付金额 "channel": 0, // payTime (int) 支付时间戳 "layer": "", // payMethod (string) 支付方式 "mascot": "", // currency (string) 货币类型 "depth": "" // payId (string) 支付ID } ] } ``` --- ### 获取未读消息数 `GET /v1/user/unread-message-count` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `standard` | `types` | 消息类型列表 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // unread_message_count — 获取未读消息数 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "Yyna+fms1qjL2Q38uMiT4E73X9T2Dkg+r7Nm4wt1RtU=", // AES(/v1/user/unread-message-count) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "weigh": [ // unreadCountList (array) 各类型未读数列表 { "bubble": 0, // count (int) 未读数 "revenue": "" // type (string) 消息类型 } ], "promote": 0, // totalUnreadCount (int) 总未读消息数 "follow": 0 // lastUpdateTime (int) 最后更新时间戳 } } ``` --- ### 注销账户 `GET /v1/user/delete` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // delete — 注销账户 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "B6taFaTaR9c0isGbC2L3/g==", // AES(/v1/user/delete) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "vote": "", // hint (string) "revenue": "" // type (string) } } ``` --- --- ## 图片 & 视频任务 > 核心 AI 功能,需要登录态 ### 创建生图任务 `POST /v1/image/create-task` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `symposium` | `userId` | 用户ID | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `profile` | `ext` | string | 扩展参数 | | `vibe` | `enable_music` | bool | 是否使用系统指定的背景声音,false是无声音。默认是true有声音 | | `liaison` | `taskType` | string | 任务类型 | | `seminar` | `size` | string | 输出尺寸,如 480p | | `itinerary` | `templateName` | string | 模板名称,BananaTask任务不传templateName | | `lease` | `srcImg2` | string | 源图片2的文件路径 | | `consulate` | `srcImg1Url` | string | 源图片1的URL | | `team` | `needopt` | boolean | 是否优化,通过配置控制 *(固定值: false)* | | `crew` | `srcImg1` | string | base64图片1上传,兼容旧app,新app使用srcImg1Url | | `glossary` | `srcImg2Url` | string | 源图片2的URL | | `appointment` | `prompt` | string | 文本提示词 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // create_task — 创建生图任务 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "SDyVz00ZABKCNQYjrh887/V1kPmVJ5gvIddXMpU2j6Y=", // AES(/v1/image/create-task) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "profile": "", // ext (string) 扩展参数 "vibe": "", // enable_music (bool) 是否使用系统指定的背景声音,false是无声音。默认是true有声音 "liaison": "", // taskType (string) 任务类型 "seminar": "", // size (string) 输出尺寸,如 480p "itinerary": "", // templateName (string) 模板名称,BananaTask任务不传templateName "lease": "", // srcImg2 (string) 源图片2的文件路径 "consulate": "", // srcImg1Url (string) 源图片1的URL "team": false, // 固定传参 "crew": "", // srcImg1 (string) base64图片1上传,兼容旧app,新app使用srcImg1Url "glossary": "", // srcImg2Url (string) 源图片2的URL "appointment": "" // prompt (string) 文本提示词 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "bitrate": 0, // state (int) 任务状态:1=队列中 | 2=处理中 | 3=完成 | 4=超时 | 5=错误 | 6=中止 "exponential": 0 // taskId (int) 任务ID } } ``` --- ### 查询图片生成进度 `GET /v1/image/progress` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | | `exponential` | `taskId` | 任务ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // progress — 查询图片生成进度 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "ZRQZUzSKdcG3PhD400/WE/Wv9d6SINzvPKuntB5cIdQ=", // AES(/v1/image/progress) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "elastic": [ // imageInfos (array) 图片信息列表 { "boost": "", // imgUrl (string) 图片URL "archive": false, // isBlur (boolean) 是否模糊 "registration": 0, // imageId (long) 图片ID "consortium": "", // resolution (string) 分辨率 "compressive": 0 // imgType (int) 图片类型,1=图片,2=视频 } ], "origin": 0, // progress (int) 进度 "bitrate": 0, // state (int) 任务状态:1=队列中 | 2=处理中 | 3=完成 | 4=超时 | 5=错误 | 6=中止 "revenue": 0, // type (int) 任务类型 "acuity": 0, // waitTime (int) 等待时间 "exponential": 0, // taskId (int) 任务ID "endpoint": 0 // queueCnt (int) 队列数量 } } ``` --- ### 获取我的任务列表 `GET /v1/image/my-tasks` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `session` | `page` | 页码 | | `seminar` | `size` | 每页数量 | | `synopsis` | `taskTypes` | 任务类型列表 *(默认值: "1,3,4")* | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // my_tasks — 获取我的任务列表 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "ZILAhMARxTi+4sbdBFCU+ISDUXbVyViWT+QZZk58iIQ=", // AES(/v1/image/my-tasks) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "insert": 0, // total (int) 总数 "blend": 0, // current (int) 当前页 "seminar": 0, // size (int) 每页大小 "create": [ // records (array) 记录列表 { "liaison": 0, // taskType (int) 任务类型 "typography": 0, // createTime (long) 创建时间 "bitrate": 0, // state (int) 任务状态:1=队列中 | 2=处理中 | 3=完成 | 4=超时 | 5=错误 | 6=中止 "exponential": 0, // taskId (long) 任务ID "easing": [ // imgList (array) 图片列表 { "boost": "", // imgUrl (string) 图片URL "consortium": "", // resolution (string) 分辨率 "compressive": 0 // imgType (int) 图片类型,1=图片,2=视频 } ] } ], "rate": false // hasNext (boolean) 是否有下一页 } } ``` --- ### 删除任务 `POST /v1/image/delete-task` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `exponential` | `taskId` | int | 任务ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // delete_task — 删除任务 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "D+BRCorCBCTJCXvZvxxfaPV1kPmVJ5gvIddXMpU2j6Y=", // AES(/v1/image/delete-task) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "exponential": 0 // taskId (int) 任务ID } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "vote": "", // hint (string) "revenue": "" // type (string) } } ``` --- ### 获取我的作品 `GET /v1/image/mycreation` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | | `session` | `page` | 页码 | | `seminar` | `size` | 每页数量 | | `liaison` | `taskType` | 任务类型 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // mycreation — 获取我的作品 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "E40btz3+WcbtRdUj9vNDWF4BsfnAmInCBnR9Rsj1L0A=", // AES(/v1/image/mycreation) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "insert": 0, // total (int) 总数 "blend": 0, // current (int) 当前页 "seminar": 0, // size (int) 每页大小 "reface": false, // optimizeCountSql (boolean) 是否优化count SQL "create": [ // records (array) 记录列表 { "boost": "", // imgUrl (string) 图片URL "archive": false, // isBlur (boolean) 是否模糊 "liaison": 0, // taskType (int) 任务类型 "registration": 0, // imageId (long) 图片ID "render": "", // appraise (string) 评价 "consortium": "", // resolution (string) 分辨率 "appointment": "", // prompt (string) 提示词 "compressive": 0 // imgType (int) 图片类型 } ], "like": 0, // maxLimit (int) 最大限制 "transmit": false, // searchCount (boolean) 是否搜索count "voice": false, // optimizeJoinOfCountSql (boolean) 是否优化join count SQL "sync": [], // orders (array) 排序 "share": "" // countId (string) count ID } } ``` --- ### 获取预签名上传URL `POST /v1/image/upload-presigned-url` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `trending` | `fileName1` | string | 文件名1 | | `spotlight` | `fileName2` | string | 文件名2 | | `comic` | `contentType` | string | 文件MIME类型 | | `pose` | `expectedSize` | int | 预期文件大小 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // upload_presigned_url — 获取预签名上传URL // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "nCZSliCSoOFfs20fuGXBXKqWFuCyb4Tu0M4E3+Eisno=", // AES(/v1/image/upload-presigned-url) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "trending": "", // fileName1 (string) 文件名1 "spotlight": "", // fileName2 (string) 文件名2 "comic": "", // contentType (string) 文件MIME类型 "pose": 0 // expectedSize (int) 预期文件大小 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "harden": "", // uploadUrl1 (string) 上传URL 1 "upload": 0, // expiresIn (int) 过期时间(秒) "tokenize": {}, // requiredHeaders (object) 上传所需请求头 "complete": "", // uploadUrl2 (string) 上传URL 2 "transform": "", // filePath2 (string) 文件路径 2 "generate": "" // filePath1 (string) 文件路径 1 } } ``` --- ### 创建文生图任务 `POST /v1/image/txt2img_create` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `satire` | `ch` | 渠道号 | | `symposium` | `userId` | 用户ID | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `indicator` | `imgCount` | int | 生成图片数量 *(固定值: 1)* | | `caption` | `aspectRatio` | string | 宽高比 | | `appointment` | `prompt` | string | 文本提示词 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // txt2img_create — 创建文生图任务 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "s9Av0hxfkwckWglmtkBH6kzL/GfTpCyOh8IIK1sP+kM=", // AES(/v1/image/txt2img_create) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "indicator": 1, // 固定传参 "caption": "", // aspectRatio (string) 宽高比 "appointment": "" // prompt (string) 文本提示词 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "bitrate": 0, // state (int) 任务状态:1=队列中 | 2=处理中 | 3=完成 | 4=超时 | 5=错误 | 6=中止 "exponential": 0 // taskId (int) 任务ID } } ``` --- ### 获取文生图标签 `GET /v1/image/txt2img_tags` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `stakeholder` | `pkg` | 应用包名(必填) | | `symposium` | `userId` | 用户ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // txt2img_tags — 获取文生图标签 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "s9Av0hxfkwckWglmtkBH6sRuXg7Jsrsui60Mr5e17Ug=", // AES(/v1/image/txt2img_tags) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": [ // data (array) 标签列表 { "capacity": "", // theme (string) 主题 "enqueue": [ // tags (array) 标签 { "remainder": "", // tag (string) 标签名 "kurtosis": "" // desc (string) 描述 } ] } ] } ``` --- ### 获取文生图提示词模板 `POST /v1/image/txt2img_prompts` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `costume` | `data` | array | 标签数据列表 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // txt2img_prompts — 获取文生图提示词模板 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "s9Av0hxfkwckWglmtkBH6ncw1DLwVYIfyFaY3CmgwKE=", // AES(/v1/image/txt2img_prompts) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "costume": [{"custom":"","capacity":"","enqueue":[]}] } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "appointment": "", // prompt (string) 文本提示词 "enqueue": "" // tags (string) 标签 } } ``` --- ### 创建换衣任务 `POST /v1/image/clothes_swap_ex` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | | `itinerary` | `templateName` | 模板名称 | | `revenue` | `type` | 类型 *(默认值: "1")* | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `dynasty` | `srcImgBase64` | string | 源图片Base64数据 | | `logbook` | `srcImgUrl` | string | 源图片URL | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // clothes_swap_ex — 创建换衣任务 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "lYVJpsqrLK/C9kfDM8JOUf9dnddtGByEgfOOEiL1qds=", // AES(/v1/image/clothes_swap_ex) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "dynasty": "", // srcImgBase64 (string) 源图片Base64数据 "logbook": "" // srcImgUrl (string) 源图片URL } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "bitrate": 0, // state (int) 任务状态:1=队列中 | 2=处理中 | 3=完成 | 4=超时 | 5=错误 | 6=中止 "exponential": 0 // taskId (int) 任务ID } } ``` --- ### 创建自定义换衣任务 `POST /v1/image/custom_clothes_swap` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `symposium` | `userId` | 用户ID | | `reaction` | `appType` | 应用类型 *(默认值: "3")* | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `lease` | `srcImg2` | string | 源图片2的文件路径 | | `crew` | `srcImg1` | string | 源图片1的文件路径 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // custom_clothes_swap — 创建自定义换衣任务 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "azfqGJW/Ai/FSsDaiuUXCLRNVjSKV/CQ8GaukiC2Rj8=", // AES(/v1/image/custom_clothes_swap) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "lease": "", // srcImg2 (string) 源图片2的文件路径 "crew": "" // srcImg1 (string) 源图片1的文件路径 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "bitrate": 0, // state (int) 任务状态:1=队列中 | 2=处理中 | 3=完成 | 4=超时 | 5=错误 | 6=中止 "exponential": 0 // taskId (int) 任务ID } } ``` --- ### 创建换脸任务 `POST /v1/image/faceswap_task` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `circular` | `img` | string | 图片 | | `repository` | `headPos` | string | 头像位置 | | `delegate` | `headType` | int | 头像类型 *(固定值: 0)* | | `terminal` | `headImg` | string | 头像图片 | | `consortium` | `resolution` | string | 分辨率 | | `entry` | `headFaceIndex` | int | 头像人脸索引 *(固定值: 2)* | | `circuit` | `srcFaceIndex` | int | 源图人脸索引 *(固定值: 1)* | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // faceswap_task — 创建换脸任务 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "BviCoJhpWNssLcLWCeCEAMhE8H95H4+jK0rI8UNbvjo=", // AES(/v1/image/faceswap_task) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "circular": "", // img (string) 图片 "repository": "", // headPos (string) 头像位置 "delegate": 0, // 固定传参 "terminal": "", // headImg (string) 头像图片 "consortium": "", // resolution (string) 分辨率 "entry": 2, // 固定传参 "circuit": 1 // 固定传参 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "bitrate": 0, // state (int) 任务状态:1=队列中 | 2=处理中 | 3=完成 | 4=超时 | 5=错误 | 6=中止 "exponential": 0 // taskId (int) 任务ID } } ``` --- ### 创建增强换脸任务 `POST /v1/image/faceswap_ex_task` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `lease` | `srcImg2` | string | 源图片2的文件路径 | | `crew` | `srcImg1` | string | 源图片1的文件路径 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // faceswap_ex_task — 创建增强换脸任务 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "BviCoJhpWNssLcLWCeCEAMaW+L60OrCOzGmif07JUM4=", // AES(/v1/image/faceswap_ex_task) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "lease": "", // srcImg2 (string) 源图片2的文件路径 "crew": "" // srcImg1 (string) 源图片1的文件路径 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "bitrate": 0, // state (int) 任务状态:1=队列中 | 2=处理中 | 3=完成 | 4=超时 | 5=错误 | 6=中止 "exponential": 0 // taskId (int) 任务ID } } ``` --- ### 检测图片人脸 `POST /v1/image/get_image_faces` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `satire` | `ch` | 渠道号 | | `symposium` | `userId` | 用户ID | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `dynasty` | `srcImgBase64` | string | 源图片Base64数据 | | `logbook` | `srcImgUrl` | string | 源图片URL | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // get_image_faces — 检测图片人脸 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "PHjL2S4W3A5fFtZANKbxUWqrI+hZ+Q/3+rv14h5Rw04=", // AES(/v1/image/get_image_faces) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "dynasty": "", // srcImgBase64 (string) 源图片Base64数据 "logbook": "" // srcImgUrl (string) 源图片URL } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "preview": 0, // duration (int) 时长 "postprocess": "", // videoUrl (string) 视频URL "discover": [ // faceInfos (array) 人脸信息列表 { "border": "", // face (string) 人脸图片 "shadow": 0, // face_index (int) 人脸索引 "speed": "", // gender (string) 性别 "binormal": 0, // y1 (int) 左上角Y坐标 "angular": 0, // x1 (int) 左上角X坐标 "manifold": 0, // y2 (int) 右下角Y坐标 "weight": 0, // index (int) 索引 "enthalpy": 0, // x2 (int) 右下角X坐标 "intensity": 0, // age (int) 年龄 "motion": 0 // frame_index (int) 帧索引 } ], "colorize": 0 // needCredits (int) 所需积分 } } ``` --- ### 检测视频人脸 `POST /v1/image/get_video_faces` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `satire` | `ch` | 渠道号 | | `symposium` | `userId` | 用户ID | | `preview` | `duration` | 时长 | | `commendation` | `srcVideo` | 源视频 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // get_video_faces — 检测视频人脸 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "GMq795fqAjR8vj/Z3EiSJJy1LdYw6669KnyXp4Gtz2I=", // AES(/v1/image/get_video_faces) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "preview": 0, // duration (int) 时长 "postprocess": "", // videoUrl (string) 视频URL "discover": [ // faceInfos (array) 人脸信息列表 { "border": "", // face (string) 人脸图片 "shadow": 0, // face_index (int) 人脸索引 "speed": "", // gender (string) 性别 "binormal": 0, // y1 (int) 左上角Y坐标 "angular": 0, // x1 (int) 左上角X坐标 "manifold": 0, // y2 (int) 右下角Y坐标 "weight": 0, // index (int) 索引 "enthalpy": 0, // x2 (int) 右下角X坐标 "intensity": 0, // age (int) 年龄 "motion": 0 // frame_index (int) 帧索引 } ], "colorize": 0 // needCredits (int) 所需积分 } } ``` --- ### 创建黏土风格任务 `POST /v1/image/clay_stylization` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | | `team` | `needopt` | 是否优化,通过配置控制 *(默认值: "false")* | | `satire` | `ch` | 渠道号 | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `dynasty` | `srcImgBase64` | string | 源图片Base64数据 | | `logbook` | `srcImgUrl` | string | 源图片URL | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // clay_stylization — 创建黏土风格任务 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "S+6xKs5lzzuc89oqJjfg0b41udJ6b7wIb6LES8S1Y4k=", // AES(/v1/image/clay_stylization) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "dynasty": "", // srcImgBase64 (string) 源图片Base64数据 "logbook": "" // srcImgUrl (string) 源图片URL } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "bitrate": 0, // state (int) 任务状态:1=队列中 | 2=处理中 | 3=完成 | 4=超时 | 5=错误 | 6=中止 "exponential": 0 // taskId (int) 任务ID } } ``` --- ### 创建视频换脸任务 `POST /v1/image/video_facewap_task` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `periodical` | `videoFrameIndex` | int | 视频帧索引 *(固定值: 10)* | | `repository` | `headPos` | string | 头像位置 | | `postprocess` | `videoUrl` | string | 视频URL | | `delegate` | `headType` | int | 头像类型 *(固定值: 2)* | | `terminal` | `headImg` | string | 头像图片 | | `itinerary` | `templateName` | string | 模板名称 | | `escrow` | `videoFaceIndex` | int | 视频人脸索引 *(固定值: 1)* | | `revenue` | `type` | int | 类型 *(固定值: 0)* | | `entry` | `headFaceIndex` | int | 头像人脸索引 *(固定值: 3)* | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // video_facewap_task — 创建视频换脸任务 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "sJoF2paOhB6BnHJXvc5/fgWx3/JZ4Xk9hHADB/UXTlI=", // AES(/v1/image/video_facewap_task) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "periodical": 10, // 固定传参 "repository": "", // headPos (string) 头像位置 "postprocess": "", // videoUrl (string) 视频URL "delegate": 2, // 固定传参 "terminal": "", // headImg (string) 头像图片 "itinerary": "", // templateName (string) 模板名称 "escrow": 1, // 固定传参 "revenue": 0, // 固定传参 "entry": 3 // 固定传参 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "bitrate": 0, // state (int) 任务状态:1=队列中 | 2=处理中 | 3=完成 | 4=超时 | 5=错误 | 6=中止 "exponential": 0 // taskId (int) 任务ID } } ``` --- ### 图片动作风格化gif `POST /v1/image/offtop_video` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | | `team` | `needopt` | 是否优化,通过配置控制 *(默认值: "false")* | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `genealogy` | `videoSize` | string | 视频尺寸 *(固定值: 480p)* | | `permission` | `srcImg` | string | 源图片 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // offtop_video — 图片动作风格化gif // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "BVsQc9sTlzSoCPtj0i2k03fjIjHQYxyldloNU6YOfBw=", // AES(/v1/image/offtop_video) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "genealogy": "480p", // 固定传参 "permission": "" // srcImg (string) 源图片 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "bitrate": 0, // state (int) 任务状态:1=队列中 | 2=处理中 | 3=完成 | 4=超时 | 5=错误 | 6=中止 "exponential": 0 // taskId (int) 任务ID } } ``` --- ### 创建图转视频姿态任务 `POST /v1/image/img2video_pose_task` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | | `itinerary` | `templateName` | 模板名称 | | `lineage` | `fps` | 帧率 *(默认值: "25")* | | `team` | `needopt` | 是否优化,通过配置控制 *(默认值: "false")* | | `preview` | `duration` | 时长 *(默认值: "12")* | | `dynasty` | `srcImgBase64` | 源图片Base64数据 | | `commendation` | `srcVideo` | 源视频 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // img2video_pose_task — 创建图转视频姿态任务 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "hlyoby7+Q/bDo1oWHbaiQbddj5Bdjy4BY/RYogP5hUU=", // AES(/v1/image/img2video_pose_task) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "bitrate": 0, // state (int) 任务状态:1=队列中 | 2=处理中 | 3=完成 | 4=超时 | 5=错误 | 6=中止 "exponential": 0 // taskId (int) 任务ID } } ``` --- ### 获取图转视频任务列表 `GET /v1/image/img2video/tasks` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `scale` | `categoryId` | 分类ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // tasks — 获取图转视频任务列表 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "hlyoby7+Q/bDo1oWHbaiQTDv+HSLSaD0RB91euOsZBc=", // AES(/v1/image/img2video/tasks) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": [ // data (array) 任务列表 { "anchor": { // previewVideo (object) 预览视频 "durability": "", // lowUrl (string) 低分辨率视频URL "altitude": "", // url (string) 视频URL "precision": "" // hlsUrl (string) HLS流URL }, "factor": { // resolution720p (object) 720p分辨率配置 "preview": 0, // duration (int) 时长(秒) "padding": 0, // credits (int) 所需积分 "delay": "" // icon (string) 图标URL }, "bounce": 0, // imageCount (int) 图片数量 "profile": "", // ext (string) 扩展参数 "liaison": "", // taskType (string) 任务类型 "span": { // resolution480p (object) 480p分辨率配置 "preview": 0, // duration (int) 时长(秒) "padding": 0, // credits (int) 所需积分 "delay": "" // icon (string) 图标URL }, "itinerary": "", // templateName (string) 模板名称 "team": false, // needopt (boolean) 是否优化,通过配置控制 "density": { // label (object) 标签 "delay": "" // icon (string) 标签图标URL }, "interval": "", // title (string) 标题 "slice": { // previewImage (object) 预览图 "altitude": "" // url (string) 图片URL } } ] } ``` --- --- ## 模板 & 分类 > 素材与配置查询,部分无需登录态 ### 获取推荐提示词 `GET /v1/image/prompt/recomends` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `satire` | `ch` | 渠道号 | | `symposium` | `userId` | 用户ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // recomends — 获取推荐提示词 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "fb/ODSRlLpg+pTA3+sgGriaMVnzyC6Tc1VzRUrqU9oE=", // AES(/v1/image/prompt/recomends) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": [ // data (array) 推荐提示词列表 { "remainder": "", // tag (string) 标签 "appointment": "" // prompt (string) 文本提示词 } ] } ``` --- ### 获取分类列表 `GET /v1/image/category-list` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `dialogue` | `templateTypes` | 模板类型列表 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // category_list — 获取分类列表 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "W2xHjqbkV0pcl7+9dWSBagfbvQ/VBnwaqyDkVol1Z9M=", // AES(/v1/image/category-list) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": [ // data (array) 分类列表 { "ringing": "", // templateType (string) 模板类型 "rotation": "", // categoryName (string) 分类名称 "scale": 0 // categoryId (int) 分类ID } ] } ``` --- ### 获取换衣模板 `GET /v1/image/clothes_template` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `satire` | `ch` | 渠道号 | | `symposium` | `userId` | 用户ID | | `scale` | `categoryId` | 分类ID *(默认值: "1")* | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // clothes_template — 获取换衣模板 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "lYVJpsqrLK/C9kfDM8JOUZbh89U6hhdQa7ikBPG3MaU=", // AES(/v1/image/clothes_template) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": [ // data (array) 换衣模板列表 { "itinerary": "", // templateName (string) 模板名称 "padding": 0, // credits (int) 积分 "frequency": "", // avatar (string) 头像 "revenue": 0, // type (int) 类型 "resistance": "", // user (string) 用户 "refractive": "" // templateUrl (string) 模板URL } ] } ``` --- ### 获取图片模板 `GET /v1/image/image_template` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `satire` | `ch` | 渠道号 | | `symposium` | `userId` | 用户ID | | `scale` | `categoryId` | 分类ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // image_template — 获取图片模板 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "Dx60zWIjtpgVTVqx0xaTScQQxW/GKc+Be40iSza0gZU=", // AES(/v1/image/image_template) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": [ // data (array) 图片模板列表 { "repository": "", // headPos (string) 头像位置 "itinerary": "", // templateName (string) 模板名称 "radius": 0, // faceIndex (int) 人脸索引 "padding": 0, // credits (int) 积分 "frequency": "", // avatar (string) 头像 "resistance": "", // user (string) 用户 "correctness": "", // resulotion (string) 分辨率 "refractive": "" // templateUrl (string) 模板URL } ] } ``` --- ### 获取推荐头像 `GET /v1/image/recommendhead` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // recommendhead — 获取推荐头像 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "M0P94sscEB5AGtUBFtHnNoAUPd+5uTKtyY4azNUs8m4=", // AES(/v1/image/recommendhead) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "load": [ // sys (array) 系统推荐列表 { "circular": "", // img (string) 图片 "repository": "", // headPos (string) 头部位置 "radius": 0, // faceIndex (int) 人脸索引 "altitude": "" // url (string) URL } ], "fabricate": [ // recent (array) 最近使用列表 { "circular": "", // img (string) 图片 "repository": "", // headPos (string) 头部位置 "radius": 0, // faceIndex (int) 人脸索引 "altitude": "" // url (string) URL } ] } } ``` --- ### 获取视频换脸模板 `GET /v1/image/faceswap_video_template` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `satire` | `ch` | 渠道号 | | `symposium` | `userId` | 用户ID | | `scale` | `categoryId` | 分类ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // faceswap_video_template — 获取视频换脸模板 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "BviCoJhpWNssLcLWCeCEAO3a3lQCf60++HfsC/vedD9V0kfX2EYyCqybFZnWFqwP", // AES(/v1/image/faceswap_video_template) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": [ // data (array) 视频换脸模板列表 { "pattern": 0, // frameIndex (int) 帧索引 "hue": 0, // videoDuration (int) 视频时长 "itinerary": "", // templateName (string) 模板名称 "padding": 0, // credits (int) 积分 "radius": 0, // faceIndex (int) 人脸索引 "quantized": "", // templateFaceUrl (string) 模板人脸URL "frequency": "", // avatar (string) 头像 "duration": "", // animate (string) 动画 "resistance": "", // user (string) 用户 "refractive": "" // templateUrl (string) 模板URL } ] } ``` --- ### 获取图转视频姿态模板 `GET /v1/image/img2Video_pose_template` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `satire` | `ch` | 渠道号 | | `symposium` | `userId` | 用户ID | | `scale` | `categoryId` | 分类ID *(默认值: "1")* | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // img2Video_pose_template — 获取图转视频姿态模板 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "8/gQGltIUvJ5gX2DJkOYRK5F5tzK0SzHi0QfCxLBYvJV0kfX2EYyCqybFZnWFqwP", // AES(/v1/image/img2Video_pose_template) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": [ // data (array) 图转视频姿态模板列表 { "preview": 0, // duration (int) 时长 "convergence": "", // templateTfUrl (string) 模板TF URL "capitalization": 0, // templateTfCredits (int) 模板TF积分 "tension": "", // templateFifUrl (string) 模板FIF URL "itinerary": "", // templateName (string) 模板名称 "padding": {}, // credits (object) 积分配置 "demodulation": 0, // templateTfDuration (int) 模板TF时长 "usability": 0, // templateFifDuration (int) 模板FIF时长 "duration": "", // animate (string) 动画 "compressed": 0, // templateFifCredits (int) 模板FIF积分 "refractive": "" // templateUrl (string) 模板URL } ] } ``` --- ### 获取图转视频分类 `GET /v1/image/img2video/categories` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // categories — 获取图转视频分类 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "hlyoby7+Q/bDo1oWHbaiQbslnntFuCttp9esQfOj2ak=", // AES(/v1/image/img2video/categories) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": [ // data (array) 分类列表 { "alignment": "", // name (string) 分类名称 "delay": "", // icon (string) 图标 "timing": 0 // id (int) 分类ID } ] } ``` --- --- ## 支付 > 需要登录态 ### 创建支付订单 `POST /v1/payment/createPayment` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `sticker` | `app` | string | 应用标识(必填) | | `council` | `lastName` | string | 姓 | | `overlay` | `country` | string | 国家代码 | | `outfit` | `expireMonth` | string | 过期月 | | `avatar` | `accountName` | string | 账户名 | | `carnival` | `userInfoType` | string | 用户信息类型 | | `punchline` | `automaticRenewal` | boolean | 是否自动续费 | | `skit` | `channel` | string | 渠道 | | `persona` | `cvcCode` | string | CVC安全码 | | `reel` | `channelType` | string | 渠道类型 | | `symposium` | `userId` | string | 用户ID | | `character` | `activityId` | string | 活动模板ID | | `appendix` | `firstName` | string | 名 | | `bundle` | `subPaymentMethod` | string | 子支付方式 | | `sponsor` | `phone` | string | 电话 | | `microservice` | `tgOrderId` | string | Telegram订单ID | | `chart` | `tgId` | string | Telegram ID | | `alignment` | `name` | string | 姓名 | | `ledger` | `paymentMethod` | string | 支付方式,如 GOOGLEPAY/APPLEPAY | | `trait` | `expireYear` | string | 过期年 | | `spoof` | `card` | string | 卡号 | | `wallet` | `status` | string | 状态 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // createPayment — 创建支付订单 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "XcNR8qG7sfb38dR3IEhYLYmALeBOULRvjJQiuVgqSxE=", // AES(/v1/payment/createPayment) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "sticker": "", // app (string) 应用标识(必填) "council": "", // lastName (string) 姓 "overlay": "", // country (string) 国家代码 "outfit": "", // expireMonth (string) 过期月 "avatar": "", // accountName (string) 账户名 "carnival": "", // userInfoType (string) 用户信息类型 "punchline": false, // automaticRenewal (boolean) 是否自动续费 "skit": "", // channel (string) 渠道 "persona": "", // cvcCode (string) CVC安全码 "reel": "", // channelType (string) 渠道类型 "symposium": "", // userId (string) 用户ID "character": "", // activityId (string) 活动模板ID "appendix": "", // firstName (string) 名 "bundle": "", // subPaymentMethod (string) 子支付方式 "sponsor": "", // phone (string) 电话 "microservice": "", // tgOrderId (string) Telegram订单ID "chart": "", // tgId (string) Telegram ID "alignment": "", // name (string) 姓名 "ledger": "", // paymentMethod (string) 支付方式,如 GOOGLEPAY/APPLEPAY "trait": "", // expireYear (string) 过期年 "spoof": "", // card (string) 卡号 "wallet": "" // status (string) 状态 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "explore": {}, // features (object) 功能特性 "introspect": [ // payTypeList (array) 支付类型列表 { "constant": "", // showName (string) 展示名称 "alignment": "", // name (string) 支付方式 "delay": "", // icon (string) 展示图标 "segment": "", // paylink (string) 支付链接 "timing": 0, // id (long) ID "overtone": 0 // sort (int) 排序 } ], "duplicate": "", // issuerUrl (string) 发卡方URL "merge": "", // cryptoInvoiceUrl (string) 加密发票URL "objectify": "", // payUrl (string) 支付URL "timing": "", // id (string) 支付ID/订单ID "submit": "", // payStatus (string) 支付状态枚举名:INIT | SUCCESS | PROCESSING | FAILED | CANCELED "morph": 0 // openType (int) URL打开方式,0=内部/1=外部浏览器 } } ``` --- ### 获取Google商品列表 `GET /v1/payment/getGooglePayActivities` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `filter` | `client` | 客户端 | | `overlay` | `country` | 国家代码 | | `stakeholder` | `pkg` | 应用包名(必填) | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // getGooglePayActivities — 获取Google商品列表 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "RuncHT0xkF47+AU0wnXKWH+aw8808UOS9iEomNrpe2LF41+d749qAu2t016y1xBJ", // AES(/v1/payment/getGooglePayActivities) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "cap": [ // subscriptionActivitys (array) 订阅商品列表 { "spacing": "", // note (string) 备注 "scene": "", // code (string) 产品代码 "contrast": 0, // bonus (int) 赠送积分 "sketch": "", // actualAmount (string) 实际金额 "margin": "", // discountOff (string) 折扣 "interval": "", // title (string) 标题 "brochure": "", // originAmount (string) 原价 "character": "", // activityId (string) 活动ID "unicast": "", // subscriptionPeriod (string) 订阅周期 "padding": 0, // credits (int) 积分数 "filter": "", // client (string) 客户端 "backdrop": 0, // days (int) 天数 "mascot": "", // currency (string) 货币 "pivot": 0 // productType (int) 产品类型 } ], "animate": [ // activitys (array) 商品列表 { "spacing": "", // note (string) 备注 "scene": "", // code (string) 产品代码 "contrast": 0, // bonus (int) 赠送积分 "sketch": "", // actualAmount (string) 实际金额 "margin": "", // discountOff (string) 折扣 "interval": "", // title (string) 标题 "brochure": "", // originAmount (string) 原价 "character": "", // activityId (string) 活动ID "unicast": "", // subscriptionPeriod (string) 订阅周期 "padding": 0, // credits (int) 积分数 "filter": "", // client (string) 客户端 "backdrop": 0, // days (int) 天数 "mascot": "", // currency (string) 货币 "pivot": 0 // productType (int) 产品类型 } ] } } ``` --- ### 获取Apple商品列表 `GET /v1/payment/getApplePayActivities` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `filter` | `client` | 客户端 | | `overlay` | `country` | 国家代码 | | `stakeholder` | `pkg` | 应用包名(必填) | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // getApplePayActivities — 获取Apple商品列表 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "U77eVRQKlTGeMSK9VhvSxf6S5/FjnRkN65JWx/dbkP41indkNaavFQ9teSfAN69C", // AES(/v1/payment/getApplePayActivities) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "cap": [ // subscriptionActivitys (array) 订阅商品列表 { "spacing": "", // note (string) 备注 "scene": "", // code (string) 产品代码 "contrast": 0, // bonus (int) 赠送积分 "sketch": "", // actualAmount (string) 实际金额 "margin": "", // discountOff (string) 折扣 "interval": "", // title (string) 标题 "brochure": "", // originAmount (string) 原价 "character": "", // activityId (string) 活动ID "unicast": "", // subscriptionPeriod (string) 订阅周期 "padding": 0, // credits (int) 积分数 "filter": "", // client (string) 客户端 "backdrop": 0, // days (int) 天数 "mascot": "", // currency (string) 货币 "pivot": 0 // productType (int) 产品类型 } ], "animate": [ // activitys (array) 商品列表 { "spacing": "", // note (string) 备注 "scene": "", // code (string) 产品代码 "contrast": 0, // bonus (int) 赠送积分 "sketch": "", // actualAmount (string) 实际金额 "margin": "", // discountOff (string) 折扣 "interval": "", // title (string) 标题 "brochure": "", // originAmount (string) 原价 "character": "", // activityId (string) 活动ID "unicast": "", // subscriptionPeriod (string) 订阅周期 "padding": 0, // credits (int) 积分数 "filter": "", // client (string) 客户端 "backdrop": 0, // days (int) 天数 "mascot": "", // currency (string) 货币 "pivot": 0 // productType (int) 产品类型 } ] } } ``` --- ### Google支付结果回调 `POST /v1/payment/googlepay` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `selection` | `signature` | string | 签名 | | `gauge` | `purchaseData` | string | Google支付凭据JSON | | `timing` | `id` | string | 支付ID/订单ID | | `symposium` | `userId` | string | 用户ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // googlepay — Google支付结果回调 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "5kbSUwSgEttk3PI1TF7hHO3sz7F7T7MtRIC3ycT/lGs=", // AES(/v1/payment/googlepay) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "selection": "", // signature (string) 签名 "gauge": "", // purchaseData (string) Google支付凭据JSON "timing": "", // id (string) 支付ID/订单ID "symposium": "" // userId (string) 用户ID } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "character": "", // activityId (string) 活动模板ID "reformat": "", // redirectUrl (string) 重定向URL "remix": false, // addCredits (boolean) 是否添加积分 "bubble": "", // count (string) 数量 "mascot": "", // currency (string) 货币 "timing": "", // id (string) 支付ID/订单ID "wallet": "" // status (string) 支付状态枚举名:INIT | SUCCESS | PROCESSING | FAILED | CANCELED } } ``` --- ### Apple支付结果回调 `POST /v1/payment/applepay` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `stakeholder` | `pkg` | 应用包名(必填) | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `funnel` | `receipt` | string | Apple支付凭据 | | `timing` | `id` | string | 支付ID/订单ID | | `symposium` | `userId` | string | 用户ID | | `installation` | `transactionId` | string | 交易ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // applepay — Apple支付结果回调 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "bFdphJDLl0MeY5lKNDqAg2HZ6ktg9Ki9gw1JEAa3rYE=", // AES(/v1/payment/applepay) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "funnel": "", // receipt (string) Apple支付凭据 "timing": "", // id (string) 支付ID/订单ID "symposium": "", // userId (string) 用户ID "installation": "" // transactionId (string) 交易ID } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "character": "", // activityId (string) 活动模板ID "reformat": "", // redirectUrl (string) 重定向URL "remix": false, // addCredits (boolean) 是否添加积分 "bubble": "", // count (string) 数量 "mascot": "", // currency (string) 货币 "timing": "", // id (string) 支付ID/订单ID "wallet": "" // status (string) 支付状态枚举名:INIT | SUCCESS | PROCESSING | FAILED | CANCELED } } ``` --- ### 获取支付订单列表 `GET /v1/payment/getPaymentDetailList` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `symposium` | `userId` | 用户ID | | `ledger` | `paymentMethod` | 支付方式,如 GOOGLEPAY/APPLEPAY | | `quest` | `filterStatus` | 筛选状态 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // getPaymentDetailList — 获取支付订单列表 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "6LEB6Zt4O2YlVv23bm7AysudNQ56fkFcCRdVesK8LW96TdvFlR/N5sIeNKMIFAq1", // AES(/v1/payment/getPaymentDetailList) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": [] // data (array) 订单列表,每项含id/status/currency/count/activityId/addCredits/redirectUrl } ``` --- ### 获取支付方式列表 `POST /v1/payment/get-payment-methods` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `character` | `activityId` | int | 活动模板ID | | `overlay` | `country` | string | 国家代码 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // get_payment_methods — 获取支付方式列表 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "WLtHvajEN6qo5St5SLE7CCAO+YnNjHqWcWZcw9ypwDA=", // AES(/v1/payment/get-payment-methods) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "character": 0, // activityId (int) 活动模板ID "overlay": "" // country (string) 国家代码 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "invoke": [ // paymentMethods (array) 支付方式列表 { "bundle": "", // subPaymentMethod (string) 子支付方式 "saturation": 0, // bonusCredits (int) 赠送积分 "alignment": "", // name (string) 名称 "delay": "", // icon (string) 图标 "breakpoint": false, // recentlyUsed (boolean) 是否最近使用 "ledger": "", // paymentMethod (string) 支付方式 "threshold": false, // recommend (boolean) 是否推荐 "sharpness": 0.0, // bonusRatio (double) 赠送比例 "adaptive": false // selected (boolean) 是否默认选中 } ] } } ``` --- ### 获取订单详情 `GET /v1/payment/getOrderDetail` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `symposium` | `userId` | 用户ID | | `timing` | `id` | 支付ID/订单ID | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // getOrderDetail — 获取订单详情 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "xPOjtP0Xwypi/obXvw7mUPa0L/aqdNbZewMS2kn486c=", // AES(/v1/payment/getOrderDetail) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "character": "", // activityId (string) 活动模板ID "reformat": "", // redirectUrl (string) 重定向URL "remix": false, // addCredits (boolean) 是否添加积分 "bubble": "", // count (string) 数量 "mascot": "", // currency (string) 货币 "timing": "", // id (string) 支付ID/订单ID "wallet": "" // status (string) 支付状态枚举名:INIT | SUCCESS | PROCESSING | FAILED | CANCELED } } ``` --- --- ## 反馈 > 需要登录态 ### 获取反馈上传URL `POST /v1/feedback/upload-presigned-url` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `feed` | `fileName` | string | 文件名 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // upload_presigned_url — 获取反馈上传URL // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "KtXIzIaOY6tKydUTTMoj9jww+otaA8rrRLFeOjwhyCAfF4F99kkeMOQm1Fv4IMCn", // AES(/v1/feedback/upload-presigned-url) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "feed": "" // fileName (string) 文件名 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "update": "", // uploadUrl (string) 上传URL "search": "" // filePath (string) 文件路径 } } ``` --- ### 提交反馈 `POST /v1/feedback/submit` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `texture` | `fileUrls` | array | 文件URL列表 | | `comic` | `contentType` | string | 内容类型 | | `gradient` | `content` | string | 内容 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // submit — 提交反馈 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "5PsAKnZCdt3ZPhtFOyCMLE7h+3SY4w/D38GTwhYs3s4=", // AES(/v1/feedback/submit) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "texture": [], "comic": "", // contentType (string) 内容类型 "gradient": "" // content (string) 内容 } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "vote": "", // hint (string) "revenue": "" // type (string) } } ``` --- ### 获取反馈列表 `GET /v1/feedback/list` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `session` | `page` | 页码 *(默认值: "1")* | | `seminar` | `size` | 每页条数 *(默认值: "10")* | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `空 b 参数` 字段) ``` // list — 获取反馈列表 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "WlI3MgBAyQnMNF3RPhldni1iZGw7c0NGgNIK6+WGKJA=", // AES(/v1/feedback/list) // "avatar_mode": "7J8V5jVfCHKnEigVbbS08w==", // AES(GET) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // 注意: 原始接口为 GET,走代理后统一 POST,仍需传 V2 请求体(业务字段为空) // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "insert": 0, // total (int) 总条数 "blend": 0, // current (int) 当前页 "seminar": 0, // size (int) 每页大小 "create": [ // records (array) 反馈记录列表 { "midpoint": false, // read (boolean) 是否已读 "grain": 0, // feedbackId (long) 反馈ID "texture": [], // fileUrls (array) 附件URL列表 "calendar": 0, // replyStatus (int) 回复状态 "amplitude": { // reply (object) 回复内容body "gradient": "" // content (string) 回复内容 }, "layout": "", // createTimeText (string) 创建时间 "gradient": "" // content (string) 反馈内容 } ], "rate": false // hasNext (boolean) 是否有下一页 } } ``` --- ### 标记反馈已读 `POST /v1/feedback/read` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **请求体字段** | 字段(V2名) | 原始字段 | 类型 | 说明 | |------------|---------|------|------| | `showcase` | `feedbackIds` | array | 反馈ID列表 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // read — 标记反馈已读 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "+hlYqg+TZabG2vOulWO6wFoogH66IgEKKds90tKS+G8=", // AES(/v1/feedback/read) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { "showcase": [] } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "vote": "", // hint (string) "revenue": "" // type (string) } } ``` --- --- ## 日志 > 埋点上报 ### App事件打点上报 `POST /v1/log/appevent` | 鉴权:需要 **请求头** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `stakeholder` | `pkg` | 应用包名(必填) | | `comedy` | `User_token` | 用户登录token | **查询参数** | 字段(V2名) | 原始字段 | 说明 | |------------|---------|------| | `sticker` | `app` | 应用标识(必填,iOS: HIOS / Android: HAndroid) | | `gesture` | `event` | 事件名称(必填) | | `symposium` | `userId` | 用户ID | | `satire` | `ch` | 渠道 | **V2 完整请求体**(填入业务值后 AES 加密,填入代理请求 `b 参数` 字段) ``` // appevent — App事件打点上报 // POST {baseUrl}/workshop/lounge/hub/playground // // 代理请求: // { // "humor_level": "FunyMeeAI", // appId 明文 // "comedy_style": "UiSfI3LsYc0fmUf/x7V4oHpN28WVH83mwh40owgUCrU=", // AES(/v1/log/appevent) // "avatar_mode": "Mhb3yNV4SnrfCK8EJAq9VQ==", // AES(POST) // "filter_type": "", // AES(映射后的Header字段名构造JSON) → Base64 // "scene_id": "", // AES(映射后的URL参数字段名构造JSON) → Base64 // "clip_duration": "", // AES(V2包装后的业务数据) → Base64 // "sample_rate": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "watermark_id": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "geo_radius": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // "accuracy_m": "<随机4-8位字母数字,AES加密→Base64>" // 噪音 // } // // V2 请求体 — 填入业务值后 AES 加密,填入 clip_duration { "shell": 2, "capsule": { "envelope": { "container": { } } }, "shimmer": "<随机4-8位字母数字,AES加密→Base64>", "glimmer": "<随机4-8位字母数字,AES加密→Base64>", "flicker": "<随机4-8位字母数字,AES加密→Base64>", "sparkle": "<随机4-8位字母数字,AES加密→Base64>", "rustle": "<随机4-8位字母数字,AES加密→Base64>", "murmur": "<随机4-8位字母数字,AES加密→Base64>", "whisper": "<随机4-8位字母数字,AES加密→Base64>", "echo": "<随机4-8位字母数字,AES加密→Base64>" } ``` **响应体**(解密后) ```json { "sprint": "", // msg (string) 消息 "scene": 0, // code (int) 状态码,0=成功 "costume": { // data "vote": "", // hint (string) "revenue": "" // type (string) } } ``` --- --- ## 字段映射全表 | 原始字段 | V2字段 | |----------|--------| | User_token | comedy | | accountId | meme | | accountName | avatar | | activityId | character | | activitys | animate | | actualAmount | sketch | | addCredits | remix | | adsTokenId | humor | | age | intensity | | amount | cartoon | | animate | duration | | app | sticker | | appFbConfig | stylize | | appType | reaction | | appraise | render | | approveState | clip | | aspectRatio | caption | | automaticRenewal | punchline | | avatar | frequency | | baseCredits | opacity | | baseUrl | joke | | begTime | gag | | bonus | contrast | | bonusCredits | saturation | | bonusRatio | sharpness | | businessId | angle | | businessType | offset | | campaignInfo | parody | | card | spoof | | categoryId | scale | | categoryName | rotation | | ch | satire | | channel | skit | | channelType | reel | | client | filter | | clientId | template | | code | scene | | coder | panel | | config | edit | | content | gradient | | contentType | comic | | count | bubble | | countId | share | | country | overlay | | countryCode | publish | | creatTime | palette | | createTime | typography | | createTimeText | layout | | credit | export | | creditPromotion | apply | | credits | padding | | creditsRecordUrl | swap | | cryptoInvoiceUrl | merge | | currency | mascot | | current | blend | | cvcCode | persona | | data | costume | | days | backdrop | | department | resize | | desc | kurtosis | | description | crop | | devId | frame | | deviceId | stage | | discountOff | margin | | domain | theme | | domains | adjust | | dt | mood | | duration | preview | | email | draft | | enable_music | vibe | | enabled | customize | | endTime | expression | | event | gesture | | expectedSize | pose | | expireMonth | outfit | | expireYear | trait | | expiresIn | upload | | ext | profile | | extConfig | download | | extJson | gallery | | face | border | | faceIndex | radius | | faceInfos | discover | | face_index | shadow | | fbClientId | glow | | fbClientToken | blur | | feature | browse | | features | explore | | feedbackId | grain | | feedbackIds | showcase | | fileName | feed | | fileName1 | trending | | fileName2 | spotlight | | filePath | search | | filePath1 | generate | | filePath2 | transform | | fileUrls | texture | | filterCountry | collection | | filterDomain | badge | | filterOwnerId | reward | | filterStatus | quest | | filterTaskType | caucus | | filterVip | allowance | | firstName | appendix | | firstRegister | enhance | | forcePayCenter | convert | | fps | lineage | | frameIndex | pattern | | frame_index | motion | | freeBlurTimes | tag | | freeTimes | label | | gender | speed | | googleClientId | roster | | h5UrlConfig | rank | | hasNext | rate | | hash | medallion | | hashIsZero | member | | headFaceIndex | entry | | headImg | terminal | | headPos | repository | | headType | delegate | | hint | vote | | hlsUrl | precision | | host | nominee | | icon | delay | | id | timing | | imageCount | bounce | | imageFaceIndex | digest | | imageId | registration | | imageInfos | elastic | | img | circular | | imgCount | indicator | | imgId | histogram | | imgList | easing | | imgType | compressive | | imgUrl | boost | | index | weight | | inviteBy | socket | | invitedCnt | pin | | isBlur | archive | | isVip | restore | | issuerUrl | duplicate | | keepUserId | campus | | label | density | | lang | venture | | lastName | council | | lastUpdateTime | follow | | launchImgUrl | coverage | | link | capital | | list | ordinance | | lowUrl | durability | | maxLimit | like | | method | listing | | methodActivitys | comment | | methodChannels | collect | | model | exhibit | | msg | sprint | | name | alignment | | needCredits | colorize | | needImage | edge | | needUndress | authorization | | needopt | team | | negativePrompt | delegation | | note | spacing | | openType | morph | | optimizeCountSql | reface | | optimizeJoinOfCountSql | voice | | orderId | franchise | | orders | sync | | originAmount | brochure | | owner | heritage | | p12KeyPath | tally | | packageName | accolade | | page | session | | pages | loop | | password | scope | | payCenterUrl | schedule | | payId | depth | | payMethod | layer | | payMethods | cluster | | payStatus | submit | | payTime | channel | | payTypeList | introspect | | payUrl | objectify | | paylink | segment | | paymentMethod | ledger | | paymentMethods | invoke | | permissions | terminate | | phone | sponsor | | pkg | stakeholder | | platform | abstract | | previewImage | slice | | previewVideo | anchor | | productType | pivot | | progress | origin | | prompt | appointment | | publicKey | thread | | purchaseData | gauge | | queueCnt | endpoint | | read | midpoint | | receipt | funnel | | recent | fabricate | | recentlyUsed | breakpoint | | recommend | threshold | | records | create | | redirectUrl | reformat | | referer | link | | refererType | complex | | reply | amplitude | | replyStatus | calendar | | requiredHeaders | tokenize | | resolution | consortium | | resolution480p | span | | resolution720p | factor | | resulotion | correctness | | rewardCredits | sigma | | rewardRatio | gutter | | role | transport | | searchCount | transmit | | selected | adaptive | | serviceAccountEmail | balance | | sharedSecret | stake | | showName | constant | | sign | mandate | | signature | selection | | size | seminar | | sort | overtone | | srcFaceImgBase64 | tournament | | srcFaceIndex | circuit | | srcImg | permission | | srcImg1 | crew | | srcImg1Url | consulate | | srcImg2 | lease | | srcImg2Url | glossary | | srcImgBase64 | dynasty | | srcImgUrl | logbook | | srcVideo | commendation | | state | bitrate | | status | wallet | | style | module | | subBusinessType | keepalive | | subPaymentMethod | bundle | | subScribeValidTime | recognize | | subscriptionActivitys | cap | | subscriptionPeriod | unicast | | sumCredits | assert | | sys | load | | t2IConfig | reboot | | tag | remainder | | tags | enqueue | | targetId | manifest | | targetInvitedCnt | unpack | | taskId | exponential | | taskIds | vendor | | taskType | liaison | | taskTypes | synopsis | | templateFaceUrl | quantized | | templateFifCredits | compressed | | templateFifDuration | usability | | templateFifUrl | tension | | templateName | itinerary | | templateTfCredits | capitalization | | templateTfDuration | demodulation | | templateTfUrl | convergence | | templateType | ringing | | templateTypes | dialogue | | templateUrl | refractive | | templates | microscopic | | tgId | chart | | tgName | spend | | tgOrderId | microservice | | theme | capacity | | title | interval | | token | attachment | | total | insert | | totalUnreadCount | promote | | transactionId | installation | | truePrompt | coalition | | ts | debit | | type | revenue | | types | standard | | unreadCountList | weigh | | updateTime | overflow | | uploadUrl | update | | uploadUrl1 | harden | | uploadUrl2 | complete | | url | altitude | | user | resistance | | userApplePayList | variety | | userId | symposium | | userInfoType | carnival | | userName | supplement | | userToken | disambiguate | | userType | resample | | username | ring | | usign | reauthenticate | | val | compliance | | value | platoon | | verifyCode | taskforce | | videoDuration | hue | | videoFaceIndex | escrow | | videoFrameIndex | periodical | | videoSize | genealogy | | videoUrl | postprocess | | waitTime | acuity | | x1 | angular | | x2 | enthalpy | | y1 | binormal | | y2 | manifold | --- ## 错误码 | code | 说明 | |------|------| | 0 | 成功 | | -1 | 失败 | | -2 | 系统错误 | | -3 | 鉴权失败 | | -5 | 参数错误 | | 1001 | 积分不足 | | 1002 | 免费次数已用完 | | 1003 | 免费次数和积分均已用完 | --- *本文档由 ProtocolEncTool 自动生成,API 变更后请重新执行 `v2 guide --app FunyMeeAI`。*