使用 Blue API 创建项目。
创建新项目
要创建一个新项目,您可以使用以下变更:
mutation {
createProject(
input: {
name: "YOUR PROJECT NEW NAME"
companyId: "YOUR COMPANY ID OR SLUG"
description: "Project description"
color: "#3B82F6"
icon: "briefcase"
category: GENERAL
}
) {
id
name
slug
description
color
icon
category
}
}
icon: lightbulb
请记得在请求中包含所需的头信息:
- `X-Bloo-Token-ID`: 您的 API 令牌 ID
- `X-Bloo-Token-Secret`: 您的 API 令牌密钥
- `X-Bloo-Company-ID`: 您的公司 ID
- `Content-Type: application/json`
请记得在请求中包含所需的头信息:
- `X-Bloo-Token-ID`: 您的 API 令牌 ID
- `X-Bloo-Token-Secret`: 您的 API 令牌密钥
- `X-Bloo-Company-ID`: 您的公司 ID
- `Content-Type: application/json`
响应示例
成功后,变更将返回新创建的项目详细信息:
{
"data": {
"createProject": {
"id": "newly-created-project-id",
"name": "YOUR PROJECT NEW NAME",
"slug": "your-project-new-name",
"description": "Project description",
"color": "#3B82F6",
"icon": "briefcase",
"category": "GENERAL"
}
}
}
从模板创建
要从现有模板创建项目,您可以向变更中添加可选的 templateId
。
mutation {
createProject(
input: {
templateId: "YOUR TEMPLATE ID OR SLUG"
name: "YOUR PROJECT NEW NAME"
companyId: "YOUR COMPANY ID OR SLUG"
}
) {
id
}
}
从模板创建项目不会立即创建项目。相反,您的项目创建将被排队。
使用模板的高级示例
以下是一个完整示例,展示从模板创建时所有可用选项:
mutation {
createProject(
input: {
templateId: "marketing-template"
name: "Q1 Marketing Campaign"
companyId: "acme-corp"
description: "Marketing initiatives for Q1 2024"
color: "#10B981"
icon: "megaphone"
category: MARKETING
coverConfig: {
enabled: true
fit: COVER
imageSelectionType: FIRST
source: DESCRIPTION
}
}
) {
id
name
slug
description
color
icon
category
}
}
icon: warning
`coverConfig` 参数目前仅在从模板创建项目时有效。对于从头开始创建的项目,您需要在创建后使用 `editProject` 变更来配置待办事项封面图像。
`coverConfig` 参数目前仅在从模板创建项目时有效。对于从头开始创建的项目,您需要在创建后使用 `editProject` 变更来配置待办事项封面图像。
检查创建状态
要检查您项目创建在队列中的状态,您可以使用以下查询:
query {
copyProjectStatus {
newProjectName
isTemplate
isActive
queuePosition
totalQueues
}
}
此查询将返回您项目创建在队列中的状态。
输入参数
CreateProjectInput
参数 | 类型 | 必需 | 描述 |
---|---|---|---|
name |
String | ✅ 是 | 项目名称。名称中的 URL 将被去除。 |
companyId |
String | ✅ 是 | 将创建项目的公司的 ID 或别名。 |
description |
String | 否 | 项目的描述。 |
color |
String | 否 | 项目颜色的十六进制格式 (例如,“#3B82F6”)。 |
icon |
String | 否 | 项目的图标标识符 (例如,“公文包”,“火箭”)。 |
category |
ProjectCategory | 否 | 项目类别。如果未指定,则默认为 GENERAL 。 |
templateId |
String | 否 | 用作模板的现有项目的 ID。 |
coverConfig |
TodoCoverConfigInput | 否 | 待办事项封面图像的配置 (目前仅在基于模板的创建中有效)。 |
ProjectCategory 值
值 | 描述 |
---|---|
CRM |
客户关系管理项目 |
CROSS_FUNCTIONAL |
跨职能团队项目 |
CUSTOMER_SUCCESS |
客户成功计划 |
DESIGN |
设计和创意项目 |
ENGINEERING |
工程和开发项目 |
GENERAL |
一般项目 (默认) |
HR |
人力资源项目 |
IT |
信息技术项目 |
MARKETING |
营销活动和计划 |
OPERATIONS |
运营和物流项目 |
PRODUCT |
产品管理项目 |
SALES |
销售和业务发展项目 |
TodoCoverConfigInput
如果您想配置待办事项封面图像在项目中的工作方式,您可以提供 coverConfig
参数:
参数 | 类型 | 必需 | 描述 |
---|---|---|---|
enabled |
Boolean | ✅ 是 | 是否启用待办事项的封面图像 |
fit |
ImageFit | ✅ 是 | 图像应如何适应封面区域 |
imageSelectionType |
ImageSelectionType | ✅ 是 | 从可用选项中选择哪种图像 |
source |
ImageSource | ✅ 是 | 从哪里提取图像 |
sourceId |
String | 否 | 特定源标识符 (例如,自定义字段 ID) |
ImageFit 值: COVER
, CONTAIN
, FILL
, SCALE_DOWN
ImageSelectionType 值: FIRST
(第一张图像), LAST
(最后一张图像)
ImageSource 值: DESCRIPTION
(来自待办事项描述), COMMENTS
(来自评论), CUSTOM_FIELD
(来自自定义字段)
响应字段
createProject 变更返回一个项目对象,具有以下可用字段:
字段 | 类型 | 描述 |
---|---|---|
id |
ID! | 项目的唯一标识符 |
name |
String! | 项目名称 |
slug |
String! | URL 友好的项目标识符 |
description |
String | 项目描述 |
color |
String | 项目颜色的十六进制格式 |
icon |
String | 图标标识符 |
category |
ProjectCategory | 项目类别枚举值 |
companyId |
String! | 公司 ID |
createdAt |
DateTime! | 创建时间戳 |
updatedAt |
DateTime! | 最后更新时间戳 |
archived |
Boolean! | 项目是否已归档 |
isTemplate |
Boolean! | 这是否是一个模板项目 |
注意:您可以请求响应中的这些字段的任何组合。
重要说明
- 您必须拥有
OWNER
,ADMIN
或MEMBER
级别的公司访问权限才能创建项目 - 从模板创建时,模板不能有超过 250,000 个待办事项
- 创建用户将自动被分配为项目
OWNER
- 项目名称会自动去除空格
coverConfig
参数目前仅在从模板创建时有效
错误响应
找不到公司
{
"errors": [{
"message": "Company not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
找不到模板
{
"errors": [{
"message": "Template not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
模板过大
{
"errors": [{
"message": "Template cannot have more than 250000 todos",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
权限被拒绝
{
"errors": [{
"message": "You do not have permission to create projects in this company",
"extensions": {
"code": "FORBIDDEN"
}
}]
}