运行时依赖
安装命令
点击复制技能文档
通过 REST API 使用 curl 与 Wake-up On LAN 网站交互。主要有两个功能:餐饮系统和活动注册系统。
步骤 1 — 解析凭证 运行以下两个 shell 命令检查环境变量: echo "${WOL_API_TOKEN}" echo "${WOL_BASE_URL}" 如果 WOL_API_TOKEN 为空,提示用户: "请粘贴您的 API 令牌,或配置 WOL_API_TOKEN 环境变量。您可以在 WOL 网站的 /user/api-tokens 生成一个。" 如果 WOL_BASE_URL 为空,假设 https://wollan.nl 为基础 URL。 将解析后的值存储为 TOKEN 和 BASE_URL,以便在下面的命令中使用。
步骤 2 — 根据用户意图分发 查看 $ARGUMENTS 和/或用户的消息以确定要采取的操作。
餐饮: 列出产品/显示菜单 触发器:$ARGUMENTS 包含产品,或用户询问可用产品/菜单。 curl -s \ -H "Authorization: Bearer $TOKEN" \ "$BASE_URL/api/v1/catering/products" 按类别分组显示结果。对于每个产品显示: 名称 价格(格式为 €X.XX,响应值以欧元分为单位 — 除以 100) 库存状态(inStock / 缺货) 产品 ID(用户需要此 ID 来下单)
餐饮: 下单 触发器:$ARGUMENTS 包含订单,或用户表示要下单。 从 $ARGUMENTS 中解析项目,格式为 productId:quantity,...(例如,order 3:2,5:1 表示产品 3 数量 2,产品 5 数量 1)。 如果 $ARGUMENTS 中没有提供项目,询问用户要哪些产品和数量(如果需要,先显示菜单)。 如果用户提供产品或产品列表而不提供数量,假设数量为 1。 构建 JSON 正文并 POST: curl -s -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"items": [{"productId": PRODUCT_ID, "quantity": QUANTITY}]}' \ "$BASE_URL/api/v1/catering/orders" 在 201 Created 时:显示确认信息,包括订单 ID、项目和总成本(所有项目的数量 × 产品价格之和,格式为 €X.XX)。
餐饮: 查看订单历史和账户余额 触发器:$ARGUMENTS 包含历史记录、为空,或用户询问其订单/余额。 curl -s \ -H "Authorization: Bearer $TOKEN" \ "$BASE_URL/api/v1/catering/orders" 以表格形式显示账户摘要: 总金额 总花费 €X.XX 总支付 €X.XX 余额(欠款) €X.XX 待处理(进行中) €X.XX 然后列出每个订单,包括其 ID、日期、状态和项目。仅当用户请求时显示详细的订单列表。 订单状态含义: accepted — 已接收,正在准备 waiting — 排队,等待其他订单 ready — 准备好,待取货 complete — 已取货/完成 cancelled / rejected — 未履行
活动注册: 检查活动状态 触发器:$ARGUMENTS 包含 eventstatus,或用户询问 WOL 注册是否开放。 curl -s \ -H "Authorization: Bearer $TOKEN" \ "$BASE_URL/api/v1/events/zijn-de-inschrijvingen-al-open-of-nie" 返回:open:true|false,如果为 true,则包含 eventId。
活动注册: 注册活动 触发器:$ARGUMENTS 包含 register,或用户要求注册下一个 WOL 活动。 使用“检查活动状态”来检查注册是否开放,如果开放,则使用该 eventId 注册用户: curl -s -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ "$BASE_URL/api/v1/events/{eventId}/register" 结果是一个简单的 success:true。
活动注册: 检查用户活动注册状态 触发器:$ARGUMENTS 包含 registration-status,或用户询问其注册状态。 使用“检查活动状态”来检查注册是否开放,如果开放,则使用该 eventId 检查用户的注册状态: curl -s \ -H "Authorization: Bearer $TOKEN" \ "$BASE_URL/api/v1/events/{eventId}/registration-status"
错误处理 HTTP 状态 含义 操作 401 Unauthorized 令牌无效或过期 提示用户在 /user/api-tokens 生成新的令牌并设置 WOL_API_TOKEN 403 Forbidden 未注册/未支付活动费用 用户需要注册活动并在 WOL 网站支付 422 Unprocessable Entity 验证错误 检查错误消息:如果提到“disabled by crew”,则通知用户订购暂时暂停,稍后再试;如果缺货,则通知用户产品缺货,建议替代产品(如果可用);如果其他消息,则显示响应中的错误消息;建议运行 products 命令检查可用性(对于餐饮端点) 503 Service Unavailable 没有活动餐饮事件配置 通知用户餐饮系统没有活动事件;联系网站管理员 500 Internal server error 服务出现问题,用户无法解决 通知用户