Skip to main content

1688-ranking

1688榜单SKILL:查询1688商品榜单列表和热搜词。 支持按类目ID查询综合榜/热卖榜/好价榜,以及获取类目维度的热搜关键词。 使用1688开放平台官方API,统一鉴权,Token全局缓存共享。

الانتقال إلى التثبيت

معلومات المصدر

المستودع
RabbitAI-Lab/rabbit-plugins-upstream
آخر نشاط في المصدر
٢٦ يوليو ٢٠٢٦ في ٢٠:٥٠
لغة SKILL.md المكتشفة
الصينية
النجوم
٠
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
9 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
1688-ranking
Version
1.0.1
description
1688榜单SKILL:查询1688商品榜单列表和热搜词。 支持按类目ID查询综合榜/热卖榜/好价榜,以及获取类目维度的热搜关键词。 使用1688开放平台官方API,统一鉴权,Token全局缓存共享。
metadata
{"openclaw":null,"primaryEnv":"ALI1688_APP_KEY, ALI1688_APP_SECRET, ALI1688_REFRESH_TOKEN","requires":null,"env":["ALI1688_APP_KEY","ALI1688_APP_SECRET","ALI1688_REFRESH_TOKEN"]}
# 1688榜单SKILL 通过1688开放平台官方API查询商品榜单和热搜词。 ## 鉴权说明 每个 Skill 内置独立的鉴权模块(`scripts/auth.py`),**不依赖任何外部 Skill**。 所有 1688 Skill 的 Token 缓存指向同一个固定路径,实现"独立运行 + 鉴权只发生一次"。 - Token 缓存路径: `skills/.1688_token_cache.json`(所有 1688 Skill 共用) - 任意一个 Skill 首次请求完成鉴权后,其他 Skill 直接复用缓存 - Token 过期前自动用 refresh_token 刷新 - 支持 `ALI1688_REFRESH_TOKEN`(自动刷新)和 `ALI1688_ACCESS_TOKEN`(直接使用)两种模式 ### 配置 在 OpenClaw config 中设置环境变量: ```json5 { skills: { entries: { "1688-ranking": { env: { ALI1688_APP_KEY: "your_app_key", ALI1688_APP_SECRET: "your_app_secret", ALI1688_REFRESH_TOKEN: "your_refresh_token" } } } } } ``` ### 如何获取 AppKey / AppSecret / Token 如果遇到 Token 相关错误(如 401、签名失败、Token 过期),按以下步骤操作: #### Step 1:注册开发者 & 创建应用 → 获取 AppKey + AppSecret 1. 打开 [1688开放平台](https://open.1688.com),用1688账号登录 2. 进入 [控制中心](https://open.1688.com/console) 3. 点击「我的应用」→「创建应用」 4. 填写应用信息,提交审核 5. 审核通过后,在应用详情页可以看到 **AppKey** 和 **AppSecret** #### Step 2:订购解决方案 → 获取 API 调用权限 1. 打开 [跨境ERP/独立站SaaS数字化解决方案](https://open.1688.com/solution/solutionDetail.htm?solutionKey=1697015308755) 2. 点击「立即订购」,将解决方案绑定到你的应用 3. 订购成功后,应用才有权限调用方案内的 API #### Step 3:用户授权 → 获取 access_token + refresh_token 1. 在浏览器中访问授权页面(替换 YOUR_APPKEY 和 YOUR_REDIRECT_URI): ``` https://auth.1688.com/oauth/authorize?client_id=YOUR_APPKEY&site=1688&redirect_uri=YOUR_REDIRECT_URI ``` 2. 用1688账号登录并同意授权 3. 页面会跳转到你的回调地址,URL 中带有 `code` 参数 4. 用 code 换取 Token(有效期短,需在10分钟内使用): ```bash curl -X POST "https://gw.open.1688.com/openapi/param2/1/system.oauth2/getToken/YOUR_APPKEY" \ -d "grant_type=authorization_code" \ -d "need_refresh_token=true" \ -d "client_id=YOUR_APPKEY" \ -d "client_secret=YOUR_APPSECRET" \ -d "redirect_uri=YOUR_REDIRECT_URI" \ -d "code=授权码" ``` 5. 返回结果中包含: - `access_token` — 用于调用 API(有效期约10小时) - `refresh_token` — 用于刷新 access_token(有效期约半年) #### Step 4:配置到环境变量 - `ALI1688_APP_KEY` = 应用的 AppKey - `ALI1688_APP_SECRET` = 应用的 AppSecret - `ALI1688_REFRESH_TOKEN` = 上一步获得的 refresh_token(推荐,支持自动刷新) - `ALI1688_ACCESS_TOKEN` = 上一步获得的 access_token(备用,过期需手动换) #### 常见 Token 错误及解决 | 错误 | 原因 | 解决方案 | |------|------|---------| | `HTTP 400` 刷新失败 | refresh_token 无效或已过期 | 重新走 Step 3 授权,获取新的 refresh_token | | `HTTP 401` 未授权 | access_token 过期或无效 | 设置 ALI1688_REFRESH_TOKEN 启用自动刷新 | | `签名错误(code=25)` | AppSecret 不正确 | 检查 ALI1688_APP_SECRET 是否与应用详情页一致 | | `无权限调用` | 未订购解决方案 | 回到 Step 2 订购对应解决方案 | | `refresh_token 半年后过期` | Token 自然过期 | 重新走 Step 3 授权 | #### 参考链接 - [1688开放平台 - 控制中心](https://open.1688.com/console) - [API 调用说明](https://open.1688.com/doc/apiInvoke.htm) - [签名规则](https://open.1688.com/doc/signature.htm) - [授权说明](https://open.1688.com/doc/apiAuth.htm) - [解决方案订购](https://open.1688.com/solution/solutionDetail.htm?solutionKey=1697015308755) ## 使用方法 ### 0. 自动类目查询 当用户调用商品榜单或热搜词接口但未提供有效类目ID时,系统会自动调用类目接口(`cateId=0`, `language=en`)并完整列出所有一级类目(不省略任何类目),帮助用户选择正确的类目ID。 ### 1. 查询商品榜单 ```bash # 查询类目ID=1111的综合榜,返回10个商品(默认英语) python3 scripts/ranking.py top-list 1111 # 查询热卖榜,返回20个商品(默认英语) python3 scripts/ranking.py top-list 1111 --type hot --limit 20 # 查询好价榜(默认英语) python3 scripts/ranking.py top-list 1111 --type goodPrice ``` **参数说明:** | 参数 | 说明 | 可选值 | |------|------|--------| | `rank_id` | 榜单ID / 类目ID(必填) | 类目ID数字 | | `--type` | 榜单类型 | `complex`(综合榜) / `hot`(热卖榜) / `goodPrice`(好价榜) | | `--limit` | 返回商品数量(最多20) | 1-20,默认10 | | `--lang` | 语言代码 | 默认 `en` | **注意:** 内部调用时,`--type` 参数会转换为 `rankType` 发送到1688 API。 ### 2. 查询热搜词 ```bash # 查询类目ID=1的热搜词(英语) python3 scripts/ranking.py top-keyword 1 # 查询热搜词(英语) python3 scripts/ranking.py top-keyword 1 ``` **参数说明:** | 参数 | 说明 | 可选值 | |------|------|--------| | `source_id` | 类目ID(必填) | 类目ID数字 | | `--country` | 语言代码 | 默认 `en` | | `--type` | 热搜类型 | 固定为 `cate`(类目维度) | ### 3. 查询所有一级类目 当需要查询类目时,系统会自动调用类目接口获取完整的类目列表: ```bash # 查询所有一级类目(英语) python3 scripts/category.py 0 ``` **类目查询参数:** - `cate_id`: 类目ID,传 `0` 获取所有一级类目 - `--language`: 语言代码,默认 `en` **注意:** 当用户查询商品榜单或热搜词但未提供有效类目ID时,系统会自动调用类目接口(`cateId=0`, `language=en`)并列出所有可用的一级类目供用户选择。 ## 输出格式 JSON 格式,直接返回1688 API 的原始响应数据。 **重要提示:所有商品查询结果都会包含商品ID(itemId字段),这是商品的唯一标识符,可用于后续的商品详情查询或其他操作。** ### 商品榜单返回字段说明 - `itemId` - **商品ID**(重要标识,可用于商品详情查询) - `title` - 商品中文标题 - `translateTitle` - 商品英文翻译标题 - `imgUrl` - 商品主图URL - `sort` - 排名序号 - `serviceList` - 服务列表(如 `sendGoods24H`、`sendGoods48H`) - `buyerNum` - 买家数量 - `soldOut` - 月销量 - `goodsScore` - 商品评分 ### 热搜词返回字段说明 - `seKeyword` - 中文热搜关键词 - `seKeywordTranslation` - 英文翻译关键词 ### 错误处理 - **失败时不会返回mock数据**:所有API调用失败时都会直接抛出错误 - **错误格式**:返回包含`error`字段的JSON对象,程序退出码为1 - **常见错误**: - `Missing ALI1688_APP_KEY or ALI1688_APP_SECRET` - 缺少必要的环境变量 - `API request failed: ...` - API调用失败(网络、认证、参数等) - `Token response missing access_token` - Token刷新失败 ## API 接口地址 | 接口 | 完整URL | |------|---------| | 查询商品榜单 | `POST https://gw.open.1688.com/openapi/param2/1/com.alibaba.fenxiao.crossborder/product.topList.query/${APPKEY}` | | 商品热搜词 | `POST https://gw.open.1688.com/openapi/param2/1/com.alibaba.fenxiao.crossborder/product.search.topKeyword/${APPKEY}` | ## 1688接口通用说明 ### API接入要点 - **语言支持**: 默认使用 `country=en`,但返回字段包含中英双语 - 中文字段示例: `title` - 英文字段示例: `translateTitle` - **Access Token**: 当前解决方案产生的access_token是**长久有效**的 - **筛选条件**: 支持多种商品筛选条件(发货时效、认证工厂、一件代发等) - **排序功能**: 支持按价格/复购率/月销量排序,但仅对当前页有效 ### 重要限制 - **数据量限制**: 每个查询最多返回2000个商品 - **图片搜索**: 仅推荐使用1688图片地址,其他域名成功率不稳定 - **价格显示**: API返回的是原价,下单时会享受营销价格 ### 服务列表映射 - `sendGoods24H` → **24小时发货** - `sendGoods48H` → **48小时发货** ## API 参考文档 完整的 API 接口和数据结构文档请参阅 [references/api.md](references/api.md)。 ## 📋 1688接口通用说明 ### 语言支持 - 默认使用 `country=en`(英语) - 返回数据包含**中英双语字段**: - 中文字段:如 `title`(1688商品标题) - 英文字段:如 `translateTitle`(翻译后的标题) ### 重要特性 - **Access Token 长久有效**:无需频繁刷新 - **商品筛选**:支持发货时效、认证工厂、一件代发等多种筛选条件 - **排序功能**:支持按价格/复购率/月销量排序(仅当前页有效) ### 限制说明 - **数据量限制**:每个查询最多返回2000个商品 - **图片搜索**:建议使用1688官方图片地址以保证成功率 - **价格显示**:API返回原价,实际下单享受营销优惠价格 ### 服务列表映射 - `sendGoods24H` → **24小时发货** - `sendGoods48H` → **48小时发货** - 其他服务类型按实际返回值展示
عرض على GitHub