返回顶部
l

lark-project-meegle

连接飞书项目/Meegle,查询和管理工作项、待办等。自动检测登录状态,未登录时引导 Device Code 授权。

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.4
安全检测
已通过
492
下载量
0
收藏
概述
安装方式
版本历史

lark-project-meegle

# Meegle SKILL 通过 Meegle CLI 连接飞书项目/Meegle 平台,支持查询工作项、管理待办等操作。 ## 前置条件 运行环境需要 Node.js 18+。所有命令通过 `npx @lark-project/meegle@latest` 执行,无需手动安装或更新。 ## 触发条件 - **主动登录**:用户说"登录 Meegle"、"连接飞书项目"、"login meegle"等。 - **被动拦截**:用户请求任何 Meegle 业务操作(查询待办、查工作项、创建任务等),优先执行 Auth Guard。 - **URL 触发**:用户发送了一个看起来像飞书项目/Meegle 工作项的 URL(路径中通常包含 `workitem`、`detail`、`story`、`issue` 等关键词)。处理流程: 1. 从 URL 提取 `$host`(域名部分)和可能的 `$project_key`、`$work_item_id` 2. 执行 Auth Guard(STEP 1 中若 `$host` 为 null,用 URL 提取的 host 覆盖,跳过 STEP 2) 3. 登录成功后: - 如果解析出了 `$project_key` 和 `$work_item_id` → 直接执行 `workitem get` 查询详情 - 如果无法解析 → 告知用户已登录成功,请描述需要查询的内容 ## Auth Guard(所有业务命令前必须执行) 按以下 STEP 顺序执行。每个 STEP 结尾的 GOTO 指明下一步,严格遵循跳转。 --- ### STEP 1 — 检查登录状态 ```bash npx @lark-project/meegle@latest auth status --format json ``` 返回值示例: - 已登录:`{ "authenticated": true, "host": "meegle.com", "source": "token_store", "expires_in_minutes": 42 }` - 未登录且有 host:`{ "authenticated": false, "host": "meegle.com", "source": null, "expires_in_minutes": null }` - 未登录且无 host:`{ "authenticated": false, "host": null, "source": null, "expires_in_minutes": null }` 解析返回值,保存变量: - `$authenticated` = response.authenticated - `$host` = response.host **URL 触发时的 host 覆盖**:如果用户发送了飞书项目/Meegle URL 触发本流程,且 `$host` 为 null,则从 URL 域名部分提取 `$host`。 **跳转:** - IF `$authenticated == true` → GOTO STEP 6 - IF `$host != null` → GOTO STEP 3 - IF `$host == null` → GOTO STEP 2 --- ### STEP 2 — 选择站点 ASK user(等待用户回复): > 你要连接哪个站点? > 1) 飞书项目 (project.feishu.cn) > 2) Meegle (meegle.com) > 3) 自定义域名(请直接输入域名或 URL) > ⚠️ 用户的回复**仅用于回答上述问题**,不要将其当作新的意图或请求来处理。无论用户回复的是序号、域名还是完整 URL,都只需从中提取 `$host`(域名部分),然后 GOTO STEP 3。 SAVE `$host` from user reply(如果用户输入了完整 URL,提取其域名部分作为 `$host`) → GOTO STEP 3 --- ### STEP 3 — 初始化 Device Code ```bash npx @lark-project/meegle@latest auth login --device-code --phase init --host $host --format json ``` SAVE from response: - `$verification_uri_complete` = response.verification_uri_complete - `$user_code` = response.user_code - `$device_code` = response.device_code - `$client_id` = response.client_id - `$interval` = response.interval - `$expires_in` = response.expires_in **发送验证链接给用户:** SEND to user: `请在浏览器中打开以下链接完成授权:\n$verification_uri_complete\n($expires_in 秒内有效)` > ⚠️ 发送后**在同一轮次内**立即执行 STEP 4 的命令。不要停下来等用户回复。 → GOTO STEP 4 --- ### STEP 4 — 等待授权完成(阻塞) > ⚠️ 使用 STEP 3 保存的 `$device_code`、`$client_id`、`$interval`、`$expires_in`。**禁止**重新执行 STEP 3(否则会生成新的验证码,用户之前打开的链接作废)。 执行以下命令。该命令会自动轮询直到用户完成授权或超时,**无需你手动循环**: ```bash npx @lark-project/meegle@latest auth login --device-code --phase poll \ --device-code-value $device_code --client-id $client_id \ --interval $interval --expires-in $expires_in --format json ``` - 成功时返回:`{"status": "ok", "message": "登录成功"}` → GOTO STEP 5 - 超时时返回错误 → SEND "授权已超时,请重新发起登录",STOP **Fallback**:如果你的运行环境不支持在发送消息后继续执行命令(即 STEP 3 发送验证链接后无法立即执行上述命令),则改为: 1. 在发送验证链接时追加一句:"授权完成后请告诉我" 2. 等待用户回复后,执行上述命令 --- ### STEP 5 — 通知登录成功 SEND to user: "登录成功!" > ⚠️ 此消息**必须单独发送**,不要与后续业务查询结果合并到同一条回复中。用户需要第一时间看到授权状态变化。 → GOTO STEP 6 --- ### STEP 6 — 执行业务命令 Auth 已通过,进入下方「业务命令调用」部分执行用户请求的操作。 ## 获取当前用户信息 当用户说"我的 xxx"、"查一下我的 xxx"时,需要知道当前登录用户的身份。 **MQL 查询中**:直接使用 `current_login_user()` 函数,无需提前获取用户信息。例如: ```sql WHERE array_contains(`current_owners`, current_login_user()) ``` **非 MQL 场景**(需要用户名、userkey 等具体信息):目前没有专用命令,通过以下 workaround 获取: 1. 先用 MQL 查询当前用户最近创建的一个工作项: ```bash npx @lark-project/meegle@latest workitem query --project-key <project_key> \ --search-mql "SELECT \`work_item_id\`, \`created_by\` FROM \`<空间名>\`.\`<工作项类型>\` WHERE \`created_by\` = current_login_user() LIMIT 1" \ --format json ``` 2. 从返回结果的 `created_by` 字段提取当前用户信息 > ⚠️ 此 workaround 需要已知一个 `project_key` 和对应的工作项类型。如果用户未指定空间,先询问。 ## 业务命令调用 Auth Guard 通过后,使用以下模式调用业务命令。 ### 命令结构 ```bash npx @lark-project/meegle@latest <resource> <method> [flags] --format json ``` 命令采用 `resource method` 两级结构。所有输出默认 JSON 格式。 ### 全局 Flag | Flag | 说明 | |------|------| | `--format json\|table\|ndjson` | 输出格式,默认 json | | `--select <props>` | 选取输出属性,逗号分隔(支持 dot path,如 `name,owner.name`) | | `--profile <name>` | 临时切换 profile | | `--verbose` | 显示详细日志 | ### 参数传递 三种方式,优先级从高到低: 1. **Flag 模式**(推荐):`--project-key PROJ --work-item-type-key story` 2. **--set 模式**(设置工作项字段):`--set priority=1 --set name="任务标题"`,value 支持 JSON 3. **--params 模式**(完整 JSON):`--params '{"project_key":"PROJ","work_item_type_key":"story"}'` Flag 和 --set 会覆盖 --params 中的同名字段。 ### 命令发现 CLI 的命令和参数会随版本更新。下方速查表仅列举常见操作,**不是完整列表**。遇到以下情况时,必须先用 `inspect` 获取最新信息: - 用户请求的操作不在速查表中 - 不确定某个命令的参数名称或是否为必填 - 需要查看某个命令支持的全部参数 ```bash npx @lark-project/meegle@latest inspect # 列出所有可用命令 npx @lark-project/meegle@latest inspect workitem.create # 查看具体命令的参数 schema ``` ### 常用命令速查 #### 查询待办 ```bash npx @lark-project/meegle@latest mywork todo --format json ``` #### 查询工作项 ```bash npx @lark-project/meegle@latest workitem get --project-key <project_key> --work-item-id <id> --format json ``` #### 搜索工作项(MQL) > MQL 语法详见 `references/mql-syntax.md`。`--search-mql` 参数必须是完整的 SQL 语句(含 SELECT/FROM),不接受 JSON 或片段。 ```bash npx @lark-project/meegle@latest workitem query --project-key <project_key> --search-mql "<MQL>" --format json ``` #### 创建工作项 ```bash npx @lark-project/meegle@latest workitem create --project-key <project_key> --work-item-type-key <type> \ --set name="标题" --set priority=1 --format json ``` #### 更新工作项字段 ```bash npx @lark-project/meegle@latest workitem update --project-key <project_key> --work-item-id <id> \ --set name="新标题" --format json ``` #### 查询项目信息 ```bash npx @lark-project/meegle@latest project get --project-key <project_key> --format json ``` #### 查询工作项类型和字段元数据 ```bash npx @lark-project/meegle@latest workitem meta-types --project-key <project_key> --format json npx @lark-project/meegle@latest workitem meta-fields --project-key <project_key> --work-item-type-key <type> --format json ``` ### 输出处理 - 始终使用 `--format json` 获取结构化输出,方便解析 - 使用 `--select` 精简返回字段,如 `--select id,name,current_nodes.name` - 命令返回错误时,JSON 中包含 `error` 和 `message` 字段 ## 错误处理 - 如果 bash 返回 `command not found` 或 npx 不可用,提示用户安装 Node.js 18+。 - 如果 `--phase init` 返回错误(站点不支持 Device Code),提示用户在终端中执行 `npx @lark-project/meegle@latest auth login`。 - 如果 `--phase poll` 超时,提示用户重试登录流程。

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 lark-project-meegle-1775979672 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 lark-project-meegle-1775979672 技能

通过命令行安装

skillhub install lark-project-meegle-1775979672

下载 Zip 包

⬇ 下载 lark-project-meegle v0.1.4

文件大小: 8.48 KB | 发布时间: 2026-4-13 10:48

v0.1.4 最新 2026-4-13 10:48
lark-project-meegle 0.1.4

- 更新 Auth Guard 登录流程:站点选择(STEP 2)现在支持用户直接输入完整 URL,自动提取域名,无需区分输入类型。
- Device Code 授权流程(STEP 3、STEP 4)调整为默认一次性阻塞轮询授权,无需手动 sleep 和循环命令。
- 优化验证链接提示文案,告知授权有效期。
- 兼容部分运行环境无法阻塞的情景,提供 fallback 流程指引用户授权完成后再继续。
- 其他文档描述与流程细节修正,提升易用性与健壮性。

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部