名称: buy-anything
描述: 通过对话式结账从亚马逊购买商品。当用户分享亚马逊商品链接或提及“购买”、“下单”并附带亚马逊链接时使用。
元数据: {"clawdbot":{"emoji":"📦","requires":{"bins":["curl"]}}}
通过 Rye 结账从亚马逊购买商品。就像在你的聊天应用中内置了 Alexa。
当用户出现以下情况时,激活此技能:
- 分享亚马逊商品链接 (amazon.com/dp/...)
- 提及“购买”、“下单”等词语并附带亚马逊链接
- 想要从亚马逊购买商品
web_fetch 或 read 工具获取亚马逊链接内容amazon.com 链接——它们都是合法的商品页面下单前,需通过 Stripe 将支付卡令牌化:
curl -s -X POST https://api.stripe.com/v1/tokens \
-u "pk_live_51LgDhrHGDlstla3fOYU3AUV6QpuOgVEUa1E1VxFnejJ7mWB4vwU7gzSulOsWQ3Q90VVSk1WWBzYBo0RBKY3qxIjV00LHualegh" \
-d "card[number]=4242424242424242" \
-d "card[exp_month]=12" \
-d "card[exp_year]=2027" \
-d "card[cvc]=123"
响应中包含一个 id 字段——这就是令牌(例如 tok_xxx)。在步骤 2 中使用此令牌。
curl -s -X POST https://api.rye.com/api/v1/partners/clawdbot/purchase \
-H "Content-Type: application/json" \
-d '{
"productUrl": "https://amazon.com/dp/B0xxx",
"quantity": 1,
"buyer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"phone": "+14155551234",
"address1": "123 Main St",
"city": "San Francisco",
"province": "CA",
"postalCode": "94102",
"country": "US"
},
"paymentMethod": {
"type": "STRIPE_TOKEN",
"token": "tok_xxx"
},
"constraints": {
"maxTotalPrice": 50000
}
}'
constraints.maxTotalPrice:用户的消费限额,单位为美分(例如 $500 = 50000)。如果订单总额超过此限额,API 将拒绝订单。如果用户说“无限制”,则完全省略 constraints 字段。
用户:帮我买这个 https://amazon.com/dp/B0DJLKV4N9
你:我来帮你购买这个亚马逊商品!请问收货地址是哪里?
(需要:姓名、地址、城市、州、邮编、邮箱、电话)
用户:John Doe, 123 Main St, San Francisco CA 94102, john@example.com, +14155551234
你:收到!你的最高购买预算是多少?(如果订单金额超过此预算,我会提醒你)
可以说“无限制”来跳过此设置。
用户:$500
你:最高预算已设为 $500。现在需要你的支付卡信息。
你的卡片将通过 Stripe 安全地令牌化——购买任意商品 API 不会看到你的卡片信息。
(卡号、到期月/年、CVC 码)
用户:4242424242424242, 12/27, 123
你:正在通过 Stripe 安全地令牌化你的卡片...
[使用 bash 运行 Stripe 令牌化 curl 命令]
你:正在处理你的订单...
[使用 bash 运行包含 Stripe 令牌的 Rye API curl 命令]
你:订单已成功下单!
总计:$361.92(包含 4% 服务费)
确认号:RYE-ABC123
是否希望我保存你的信息,以便下次更快结账?
在首次购买前,询问用户其最高购买预算,并将其存储在记忆中。
- 如果订单总额(含 4% 服务费)超过限额,提醒用户并请求确认
- 用户可以说“无限制”来禁用此检查
首次成功购买后(经用户许可):
- 将完整的支付卡信息(卡号、有效期、CVC 码)保存到记忆中,供未来购买使用
- 将收货地址保存到记忆中
- 将最高购买预算保存到记忆中
- 在后续购买中,每次都需要重新令牌化已保存的卡片