
数据
外滩大会黑客松作品提交数据源
Use when submitting hackathon projects to the Bund Summit hackathon platform, managing project submissions, or querying submission status (keywords:黑客松、外滩大会、作品提交、hackathon、project submit、WeaveFox). Provides project submission capabilities for the Vibe Coding hackathon channel. Do NOT use for general data queries or non-hackathon submissions.
Skill 文件
Skill
SKILL.md
SKILL.md
| name | weavefox-hackathon-datasource |
|---|---|
| title | 外滩大会黑客松作品提交数据源 |
| description | Use when submitting hackathon projects to the Bund Summit hackathon platform, managing project submissions, or querying submission status (keywords:黑客松、外滩大会、作品提交、hackathon、project submit、WeaveFox). Provides project submission capabilities for the Vibe Coding hackathon channel. Do NOT use for general data queries or non-hackathon submissions. |
| tools | curl |
| credentials | HACKATHON_TOKEN |
| credential_help | HACKATHON_TOKEN: "联系黑客松技术服务提供方获取 x-hackathon-token" |
外滩大会黑客松作品提交数据源
通过 curl tool 或者相关网络请求库,调用外滩大会全名黑客松参赛作品提交接口,用于从多个黑客松 Vibe Coding 渠道提交参赛作品。
服务时间窗口:2026-07-13 至 2026-07-31(接口将于 2026-07-31 23:59:59 准时关闭)
鉴权
请求 www.weavefox.cn 时,在请求头中携带 Token:
x-hackathon-token: {{secrets.HACKATHON_TOKEN}}
占位符由后端在 curl 运行期替换为真实 token,你无需也无法看到明文。
通用约定
- Base URL:
https://www.weavefox.cn/api/v1/hackathon(必须使用 HTTPS,HTTP 会被系统拒绝) - 请求方法:POST
- 请求头:
Content-Type: application/jsonx-hackathon-token: {{secrets.HACKATHON_TOKEN}}
- 响应格式:JSON
- 分页:不分页
常用接口
1. 提交参赛作品
POST https://www.weavefox.cn/api/v1/hackathon/project/submit请求体(直接提交业务参数):
请求体是业务参数的 JSON 对象,直接包含以下字段:
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
channel_id | string | ✅ | 参赛渠道 ID | WeaveFox / Rednote / Lingguang |
app_id | string | ✅ | 作品在对应渠道的唯一 id | rednote_note_123456 |
user_idendity | string | ✅ | 手机号经 HMAC-SHA256(秘钥hackathon2026)哈希值 | 48bcb4ee8f64635e2623... |
user_name | string | ✅ | 参赛人昵称 | 张三 |
user_province | string | ❌ | 用户所在省 | 上海市 / 广东省 |
user_city | string | ❌ | 用户所在市 | 上海市 / 深圳市 |
user_job | string | ❌ | 参赛人身份 | 学生/开发者/设计师/产品经理/创业者/研究员/其他 |
user_age | number | ❌ | 参赛人年龄 | 25 |
user_phone | string | ❌ | 参赛人手机号 | 13800138000 |
user_email | string | ❌ | 参赛人邮箱 | zhangsan@example.com |
project_name | string | ✅ | 作品名称 | 测试参赛作品 |
project_description | string | ✅ | 作品功能描述(纯文本/Markdown) | 这是一个测试作品描述 |
project_url | string | ✅ | 作品可访问链接 | https://my-project.example.com |
project_category | string | ❌ | 作品分类 | 效率办公/社交社区/学习教育/娱乐内容/健康生活/游戏互动/AI原生应用/商业金融/其他 |
project_snapshot_images | string | ✅ | 作品快照图片 URL,逗号分隔 | https://cdn.example.com/img1.png,https://cdn.example.com/img2.png |
project_cover_image | string | ❌ | 作品封面图 URL(默认使用 snapshot_images 第一张) | https://cdn.example.com/cover.png |
build_platform | string | ✅ | 搭建平台/工具 | 秒哒/秒悟/扣子/WeaveFox/小红书/魔搭 |
build_language | string | ✅ | 编程语言,默认为 AI | AI/TypeScript/Python/JavaScript |
build_ai_usage_type | number | ❌ | AI 参与度:0=全AI,1=AI+手动编码 | 0 / 1 |
submitted_at | string | ✅ | 作品提交时间,ISO 8601 格式 | 2026-06-12T10:30:00Z |
关键返回字段:
| JSON Path | 类型 | 说明 |
|---|---|---|
success | bool | 接口请求是否成功 |
code | number | 接口返回状态码(200=成功) |
message | string | 接口说明信息(失败时提供) |
data | object | 返回参赛应用的完整信息 |
调用示例
场景:从 WeaveFox 渠道提交一个 AI 原生应用作品
cURL 示例
curl( url = "https://www.weavefox.cn/api/v1/hackathon/project/submit", X = "POST", H = ["Content-Type: application/json", "x-hackathon-token: {{secrets.HACKATHON_TOKEN}}"], d = '{"channel_id":"WeaveFox","app_id":"weavefox_proj_10001","user_idendity":"48bcb4ee8f64635e2623df718e5ddfa7887b4e9de5d39c294fb14c9911f4a1b6","user_name":"张三","project_name":"AI智能助手","project_description":"基于大语言模型的智能对话应用","project_url":"https://my-ai-assistant.example.com","project_snapshot_images":"https://cdn.example.com/screenshot1.png,https://cdn.example.com/screenshot2.png","project_category":"AI 原生应用","build_platform":"WeaveFox","build_language":"AI","build_ai_usage_type":0,"submitted_at":"2026-07-15T10:30:00Z"}')JavaScript / TypeScript 示例
javascript
// 1. 组装业务参数const formData = { channel_id: "WeaveFox", app_id: "weavefox_proj_10001", project_name: "测试参赛作品", project_description: "这是一个测试作品描述", project_snapshot_images: "https://cdn.example.com/img1.png,https://cdn.example.com/img2.png", user_idendity: "48bcb4ee8f64635e2623df718e5ddfa7887b4e9de5d39c294fb14c9911f4a1b6", user_name: "张三", build_platform: "秒哒", build_language: "AI", build_ai_usage_type: 1, project_cover_image: "https://cdn.example.com/cover.png", project_category: "AI 原生应用", project_url: "https://my-project.example.com", user_province: "上海市", user_city: "上海市", user_job: "开发者", user_email: "zhangsan@example.com", submitted_at: "2026-06-12T10:30:00+08:00"};
// 2. 发起请求const response = await fetch( "https://www.weavefox.cn/api/v1/hackathon/project/submit", { method: "POST", headers: { "x-hackathon-token": "sh-xxxxxxxxxxxxxxxxxx", "Content-Type": "application/json", }, body: JSON.stringify(formData), // 业务参数序列化为 JSON 字符串 },);
const result = await response.json();console.log(result);从返回中提取 success 和 code 字段判断提交结果:
success: true且code: 200表示提交成功success: false时查看message获取错误详情
错误处理
| HTTP 状态码 | 含义 | 应对方式 |
|---|---|---|
200 | ✅ 成功 | 请求成功,检查 success 字段确认业务结果 |
400 | 请求错误 | 缺少必填字段或 JSON 解析失败;或不在服务时间窗口内 |
401 | 未认证 | 缺少 API Token,检查 x-hackathon-token 请求头 |
403 | 认证失败 | Token 无效,联系技术服务方获取有效 token |
404 | 未找到 | 接口路径不存在,检查 URL 是否正确 |
500 | 服务器错误 | 服务端内部异常,稍后重试或联系技术支持 |
注意事项
- 服务时间限制:接口仅在 2026-07-13 至 2026-07-31 期间可用,2026-07-31 23:59:59 准时关闭
- 相同作品覆盖:相同
channel_id+app_id的提交会覆盖原有记录 - 图片跨域:
project_snapshot_images和project_cover_image需开启*.weavefox.cn跨域访问 - 用户标识计算:
user_idendity需使用 HMAC-SHA256(秘钥hackathon2026)对手机号哈希计算 - 回流前置:回流创作作品前,确保应用信息在渠道内已落库
Ln 1, Col 1MarkdownSpaces: 2
No errors