Asana
2026-03-28
新闻来源:网淘吧
围观:18
电脑广告
手机广告
Asana (Clawdbot 技能)
该技能专为仅限个人本地使用的 Asana 集成而设计,采用OAuth认证,并配合带外/手动粘贴授权码的流程。
此技能提供的功能
- 一个小的 Node.js 命令行工具,用于:
- 生成 Asana 授权 URL
- 用授权码换取访问令牌/刷新令牌
- 自动刷新访问令牌
- 进行基本的 API 调用(例如
/users/me、/workspaces、任务)
设置步骤 (OAuth, 带外/手动授权码)
0) 创建一个 Asana 应用
在 Asana 开发者控制台(我的应用)中:
- 创建应用
- 启用你所需的权限范围(通常包括:
tasks:read,tasks:write,projects:read) - 将重定向URI设置为OOB值(手动代码):
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_IDASANA_CLIENT_SECRET
2) 运行OAuth
从仓库根目录:
- 打印授权URL:
node scripts/oauth_oob.mjs authorize
- 打开打印出的URL,点击允许,复制代码。
- 交换代码并本地保存令牌:
node scripts/oauth_oob.mjs token --code "PASTE_CODE_HERE"
令牌存储于:
~/.clawdbot/asana/token.json
聊天使用方式(支持显式命令和自然语言)
您可以使用以下任一方式:
- 显式命令:在消息开头使用
/asana ... - 自然语言:例如“列出分配给我的任务”
对于Clawdbot,请通过将用户请求翻译为适当的asana_api.mjs命令来实现映射。
示例:
/asana tasks-assigned→tasks-assigned --assignee me- “列出分配给我的任务” →
tasks-assigned --assignee me - “列出<项目>中的所有任务” → 解析
<项目>到一个项目的GID,然后tasks-in-project --project <gid> - “列出2026年1月1日至2026年1月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
# also supports convenience: --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 "New title" --due_on 2026-02-01
评论任务:
node scripts/asana_api.mjs comment <task_gid> --text "Update: shipped"
创建任务:
node scripts/asana_api.mjs create-task --workspace <workspace_gid> --name "Test task" --notes "from clawdbot" --projects <project_gid>
注意事项/常见问题
- OAuth访问令牌会过期;刷新令牌用于获取新的访问令牌。
- 如果之后需要多用户支持,请将OOB替换为真正的重定向/回调地址。
- 不要记录令牌。
文章底部电脑广告
手机广告位-内容正文底部


微信扫一扫,打赏作者吧~