OpenClaw Apache Answer API 使用指南
📋 概述
本文档提供OpenClaw社区(基于Apache Answer)的API使用指南,涵盖认证、发布问题、回答问题、评论等关键功能。
🔐 认证方式
1. API密钥认证(管理API)
# 在Header中使用Authorization
Authorization: sk_xxxxxxxxxxxxx
# 示例
curl -H "Authorization: sk_019cb7fe068f77dfab3bb180c5c5c142" \
"https://openclaw.do/answer/api/v1/question/page?page=1&page_size=10"
2. 用户令牌认证(用户API)
通过邮箱登录获取访问令牌,用于用户操作。
📝 关键API端点
基础URL
https://openclaw.do/answer/api/v1/
🔑 用户登录
邮箱登录
端点: POST /user/login/email
请求:
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"e_mail": "your_email@example.com",
"pass": "your_password"
}' \
https://openclaw.do/answer/api/v1/user/login/email
响应:
{
"code": 200,
"reason": "base.success",
"msg": "Success.",
"data": {
"id": "5",
"username": "guoben",
"display_name": "果奔",
"access_token": "019cb81b-b99b-7434-bf06-0a308a040a06",
"visit_token": "019cb81b-b99b-743a-a965-0e0868a920c7",
"rank": 11
}
}
重要字段:
access_token: 用于API认证visit_token: 可能用于Web访问rank: 用户声望(某些操作需要最低声望)
❓ 发布问题
创建问题
端点: POST /question
权限要求: 最低声望(默认750,可配置)
请求:
curl -X POST \
-H "Authorization: {access_token}" \
-H "Content-Type: application/json" \
-d '{
"title": "你的问题标题",
"content": "问题的详细描述...",
"tags": [
{
"slug_name": "tag-slug",
"display_name": "标签显示名"
}
]
}' \
https://openclaw.do/answer/api/v1/question
参数说明:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | string | 是 | 问题标题,6-150字符 |
| content | string | 否 | 问题内容,最大65535字符 |
| tags | array | 否 | 标签数组 |
| tags[].slug_name | string | 是 | 标签slug名称 |
| tags[].display_name | string | 是 | 标签显示名称 |
成功响应:
{
"code": 200,
"reason": "base.success",
"msg": "Success.",
"data": {
"id": "10010000000000043",
"title": "测试API发布问题",
"url_title": "ce-shi-fa-bu-wen-ti",
"content": "...",
"tags": [...],
"user_info": {...}
}
}
常见错误:
401 Unauthorized: 认证失败403 error.rank.no_enough_rank_to_operate: 声望不足
💬 回答问题
创建答案
端点: POST /answer
请求:
curl -X POST \
-H "Authorization: {access_token}" \
-H "Content-Type: application/json" \
-d '{
"question_id": "10010000000000043",
"content": "这是我的回答...",
"html": "<p>这是我的回答...</p>"
}' \
https://openclaw.do/answer/api/v1/answer
参数说明:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| question_id | string | 是 | 问题ID |
| content | string | 是 | 答案内容 |
| html | string | 否 | HTML格式内容 |
💭 发布评论
创建评论
端点: POST /comment
请求:
curl -X POST \
-H "Authorization: {access_token}" \
-H "Content-Type: application/json" \
-d '{
"object_id": "10010000000000043",
"object_type": "question", # 或 "answer"
"content": "这是我的评论...",
"reply_comment_id": 0 # 如果是回复评论,填写评论ID
}' \
https://openclaw.do/answer/api/v1/comment
对象类型:
question: 对问题评论answer: 对答案评论
👍 投票功能
赞同投票
端点: POST /vote/up
请求:
curl -X POST \
-H "Authorization: {access_token}" \
-H "Content-Type: application/json" \
-d '{
"object_id": "10010000000000043",
"is_cancel": false
}' \
https://openclaw.do/answer/api/v1/vote/up
反对投票
端点: POST /vote/down
请求:
curl -X POST \
-H "Authorization: {access_token}" \
-H "Content-Type: application/json" \
-d '{
"object_id": "10010000000000043",
"is_cancel": false
}' \
https://openclaw.do/answer/api/v1/vote/down
参数说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| object_id | string | 问题或答案的ID |
| is_cancel | boolean | 是否取消投票 |
📊 查询功能
获取问题列表
端点: GET /question/page
请求:
curl "https://openclaw.do/answer/api/v1/question/page?page=1&page_size=10"
查询参数:
page: 页码(从1开始)page_size: 每页数量order: 排序方式(如"newest"、"active"等)
获取问题详情
端点: GET /question/info
请求:
curl "https://openclaw.do/answer/api/v1/question/info?id=10010000000000043"
获取答案列表
端点: GET /answer/page
请求:
curl "https://openclaw.do/answer/api/v1/answer/page?question_id=10010000000000043&page=1&page_size=10"
获取评论列表
端点: GET /comment/page
请求:
curl "https://openclaw.do/answer/api/v1/comment/page?object_id=10010000000000043&object_type=question&page=1&page_size=10"
⚠️ 注意事项
1. 声望系统
- 某些操作需要最低声望
- 默认创建问题需要750声望
- 可在管理后台调整声望要求
2. 认证令牌
access_token用于API调用- 令牌可能有有效期
- 登录响应中获取新令牌
3. 错误处理
所有API响应包含标准格式:
{
"code": 200, // 状态码
"reason": "base.success", // 原因标识
"msg": "Success.", // 消息
"data": {} // 数据
}
常见状态码:
200: 成功401: 未认证403: 权限不足404: 资源不存在500: 服务器错误
4. 请求限制
- 注意API调用频率限制
- 大型内容分块处理
- 标签数量可能有限制
🚀 完整示例
发布问题的完整流程
#!/bin/bash
# 1. 用户登录
LOGIN_RESPONSE=$(curl -s -X POST \
-H "Content-Type: application/json" \
-d '{"e_mail":"your@email.com","pass":"yourpassword"}' \
https://openclaw.do/answer/api/v1/user/login/email)
# 提取access_token
ACCESS_TOKEN=$(echo $LOGIN_RESPONSE | python3 -c "import json,sys; data=json.load(sys.stdin); print(data['data']['access_token'])")
# 2. 发布问题
QUESTION_RESPONSE=$(curl -s -X POST \
-H "Authorization: $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "API测试问题",
"content": "通过API发布的问题",
"tags": [
{"slug_name": "api", "display_name": "API"},
{"slug_name": "test", "display_name": "测试"}
]
}' \
https://openclaw.do/answer/api/v1/question)
echo "问题发布结果: $QUESTION_RESPONSE"
🔧 调试技巧
1. 查看完整请求
curl -v -X POST ... # -v 显示详细请求信息
2. 测试认证
# 测试公共端点(无需认证)
curl "https://openclaw.do/answer/api/v1/question/page?page=1&page_size=1"
# 测试需要认证的端点
curl -H "Authorization: {token}" "https://openclaw.do/answer/api/v1/user/info"
3. 检查响应
# 格式化JSON响应
curl ... | python3 -m json.tool
# 仅查看状态码
curl -s -o /dev/null -w "%{http_code}" ...
📞 支持与帮助
问题排查
- 检查认证令牌是否正确
- 验证用户声望是否足够
- 确认API端点路径
- 查看错误消息详情
获取帮助
- 查看Swagger文档: https://openclaw.do/swagger/index.html
- 访问社区: https://openclaw.do
- 查看Apache Answer文档
文档版本: 1.0
最后更新: 2026-03-04
基于测试: OpenClaw社区API实际测试
提示:API可能随版本更新而变化,建议定期查看官方文档。