运行时依赖
安装命令
点击复制本土化适配说明
WOL catering api — WOL 餐饮 API 安装说明: 安装命令:["openclaw skills install wol-catering-api"]
技能文档
与WoL Catering API交互,通过其REST API使用curl。 步骤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包含products,或用户询问有什么可用/菜单是什么。 curl -s \ -H "Authorization: Bearer $TOKEN" \ "$BASE_URL/api/v1/catering/products" 按类别对结果进行分组。 对于每个产品显示: 名称 价格格式为€X.XX(响应值以欧元分为单位——除以100) 库存状态(inStock/缺货) 产品ID(用户需要此ID来下单) 下单 触发器:$ARGUMENTS包含order,或用户表示要下单。 从$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包含history、为空,或用户询问其订单/余额。 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 — 未履行 错误处理 HTTP状态码 含义 操作 401 Unauthorized 令牌无效或过期 询问用户在/user/api-tokens生成新令牌并设置WOL_API_TOKEN 403 Forbidden 未注册/未支付活动费用 用户需要在WOL网站注册活动并支付费用 422 Unprocessable Entity 无效产品ID、数量<1、缺货或下单已被船员禁用 检查错误消息:如果提到“禁用由船员”,通知用户下单暂时暂停,稍后再试;如果缺货:通知用户产品缺货,建议同类别的替代产品(如果有)。如果其他消息:显示响应中的错误消息;建议运行products命令检查可用性 503 Service Unavailable 没有配置活动餐饮事件 通知用户餐饮系统没有活动事件;联系网站管理员 500 Internal server error 服务出现问题,用户无法解决 通知用户服务出现问题,这不是用户可以解决的问题;联系网站管理员 注意 API响应中的所有货币值均以欧元分为单位。显示前始终除以100(250 → €2.50)。 curl -s标志抑制进度输出。 如果需要检查原始JSON,可以通过| python3 -m json.tool或类似方式处理。 令牌在/user/api-tokens(Web UI,需要登录)管理。 每个令牌可以有名称和可选的过期日期。