网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

Asana

2026-03-28 新闻来源:网淘吧 围观:19
电脑广告
手机广告

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_ID
  • ASANA_CLIENT_SECRET

2) 运行OAuth

从仓库根目录:

  1. 打印授权URL:
node scripts/oauth_oob.mjs authorize
  1. 打开打印出的URL,点击允许,复制代码。
  2. 交换代码并本地保存令牌:
node scripts/oauth_oob.mjs token --code "PASTE_CODE_HERE"

令牌存储于:

  • ~/.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年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替换为真正的重定向/回调地址。
  • 不要记录令牌。
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第294493名访客 今日有343篇新文章/评论