OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  asana:集成 Asana 实现专业级项目任务与工作流同步

asana:集成 Asana 实现专业级项目任务与工作流同步

 
  git ·  2026-02-07 02:00:43 · 3 次点击  · 0 条评论  

名称: asana
描述: "通过 Asana REST API 将 Asana 与 Clawdbot 集成。当你需要列出/搜索/创建/更新 Asana 任务/项目/工作区,或为个人本地集成(OOB/手动粘贴授权码)设置 Asana OAuth(授权码模式)时使用。"


Asana (Clawdbot 技能)

此技能专为仅限个人本地使用的 Asana 集成设计,采用 OAuth 流程,支持带外/手动粘贴授权码方式。

技能功能

  • 一个轻量级 Node CLI 工具,用于:
  • 生成 Asana 授权 URL
  • 将授权码交换为访问令牌和刷新令牌
  • 自动刷新访问令牌
  • 执行基础 API 调用(例如 /users/me/workspaces、任务操作)

设置流程(OAuth,带外/手动授权码)

0) 创建 Asana 应用

在 Asana 开发者控制台(My apps)中:
- 创建应用
- 启用所需权限范围(典型范围:tasks:readtasks:writeprojects:read
- 将重定向 URI 设置为带外值(手动授权码):
- urn:ietf:wg:oauth:2.0:oob

1) 提供凭证(两种方式)

选项 A(推荐用于 Clawdbot): 保存到本地凭证文件:

node scripts/configure.mjs --client-id "..." --client-secret "..."

此命令将写入 ~/.clawdbot/asana/credentials.json

选项 B: 设置环境变量(shell/会话级):
- ASANA_CLIENT_ID
- ASANA_CLIENT_SECRET

2) 运行 OAuth 授权

在仓库根目录执行:

1) 打印授权 URL:

node scripts/oauth_oob.mjs authorize

2) 打开打印的 URL,点击 Allow,复制授权码。
3) 交换授权码并本地保存令牌:

node scripts/oauth_oob.mjs token --code "在此粘贴授权码"

令牌存储位置:
- ~/.clawdbot/asana/token.json

聊天使用(支持显式命令与自然语言)

可使用以下任一方式:
- 显式命令:消息以 /asana ... 开头
- 自然语言:例如“列出分配给我的任务”

对于 Clawdbot,需通过将用户请求映射到相应的 asana_api.mjs 命令来实现。

示例:
- /asana tasks-assignedtasks-assigned --assignee me
- “列出分配给我的任务” → tasks-assigned --assignee me
- “列出 <项目> 中的所有任务” → 将 <项目> 解析为项目 gid,然后执行 tasks-in-project --project <gid>
- “列出 2026-01-01 至 2026-01-15 到期的任务” → search-tasks --assignee me --due_on.after 2026-01-01 --due_on.before 2026-01-15

(可选辅助)scripts/asana_chat.mjs 可将常见短语映射到命令框架。

使用 API 辅助工具

基础检查(当前用户信息):

node scripts/asana_api.mjs me

列出工作区:

node scripts/asana_api.mjs workspaces

设置默认工作区(可选):

node scripts/asana_api.mjs set-default-workspace --workspace <workspace_gid>

设置后,支持该参数的命令可省略 --workspace

列出指定工作区中的项目(显式指定):

node scripts/asana_api.mjs projects --workspace <workspace_gid>

使用默认工作区列出项目:

node scripts/asana_api.mjs projects

列出项目中的任务:

node scripts/asana_api.mjs tasks-in-project --project <project_gid>

列出分配给我的任务(Asana 要求指定工作区):

node scripts/asana_api.mjs tasks-assigned --workspace <workspace_gid> --assignee me

或使用默认工作区:

node scripts/asana_api.mjs tasks-assigned --assignee me

搜索任务(高级搜索):

node scripts/asana_api.mjs search-tasks --workspace <workspace_gid> --text "release" --assignee me
# 也支持便捷参数:--project <project_gid>

查看任务详情:

node scripts/asana_api.mjs task <task_gid>

标记任务为完成:

node scripts/asana_api.mjs complete-task <task_gid>

更新任务:

node scripts/asana_api.mjs update-task <task_gid> --name "新标题" --due_on 2026-02-01

为任务添加评论:

node scripts/asana_api.mjs comment <task_gid> --text "更新:已发货"

创建任务:

node scripts/asana_api.mjs create-task --workspace <workspace_gid> --name "测试任务" --notes "来自 clawdbot" --projects <project_gid>

注意事项

  • OAuth 访问令牌会过期;刷新令牌用于获取新的访问令牌。
  • 若后续需要支持多用户,请将带外模式替换为实际的重定向/回调流程。
  • 请勿记录令牌信息。
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor