微信 AppID 解析器
通过 webstr.top 开放平台 的 jx_appid/getData 接口,根据微信小程序或公众号的 APPID 反查其名称、主体(认证公司/个人)、原始ID(gh_xxxx)、类型(小程序/公众号)、简介、logo等公开信息。
何时使用
- 用户提供了一段
wx开头的字符串(如wx26da53d900421226),想查清它属于哪个小程序/公众号、主体是谁。 - 需要判断一个 appid 是「小程序」还是「公众号」。
- 需要拿到公众号的「原始ID(gh_xxx)」用于后续对接。
- 一句话触发示例:「解析这个 appid 是哪个公司的」「wx26da53d900421226 是什么公众号」。
能力概述
- 输入:一个微信小程序/公众号 APPID(必填)。
- 输出:主体名称、原始ID、类型、简介、logo。
- 鉴权:开放平台
appKey + appSecret + MD5 签名,由本 skill 的脚本自动完成签名,无需手动计算。 - 请求格式:
application/x-www-form-urlencodedPOST(接口实测仅认表单格式,不认 JSON body)。
使用方式
解析一个 APPID
python3 "$SKILL_PATH/assets/appid_resolver.py" "wx26da53d900421226"
默认行为:纯文本输出
裸跑即可,无需任何额外参数,脚本直接打印解析结果(名称、主体、原始ID、类型、简介、Logo 地址等):
python3 "$SKILL_PATH/assets/appid_resolver.py" "wx26da53d900421226"
其他输出格式
# 原始 JSON(便于下游程序消费)
python3 "$SKILL_PATH/assets/appid_resolver.py" "wx26da53d900421226" --json
权限与凭据(参考 video-downloader 的授权方式)
本接口采用 appKey + appSecret 鉴权,需先在 webstr.top 开放平台 用户中心申请 appKey/appSecret。获取后任选一种方式配置,脚本读取优先级为:命令行参数 > 环境变量 > 配置文件。
| 方式 | 命令 / 位置 | 安全性 |
|---|---|---|
| 环境变量(推荐) | export WEBSTR_APPKEY=你的appkey 与 export WEBSTR_APPSECRET=你的appsecret |
较高,不落地到命令行 |
| 配置文件 | 默认写入 ~/.config/wechat-appid-resolver/webstr.json:{"appkey":"你的appkey","appsecret":"你的appsecret"}(权限自动设为 0600);可用环境变量 WEBSTR_CONFIG_FILE 覆盖为任意绝对路径 |
较高,落地但仅本人可读,且路径与具体 agent 软件无关 |
| 命令行参数 | --appkey 你的appkey --appsecret 你的appsecret |
⚠️ 有泄露风险,仅临时使用 |
保存配置(一次性记住,避免每次传参):
python3 "$SKILL_PATH/assets/appid_resolver.py" "<appid>" --appkey 你的appkey --appsecret 你的appsecret --save-key
> 没有 appKey / appSecret 时脚本会明确报错并给出申请入口,不会浪费请求。
安全说明
- 密钥永不打印:脚本任何输出、报错、日志中都不会出现 appKey / appSecret 明文。
- 配置文件最小权限:写入配置文件时设为
0600;运行时会检测并自动收紧过宽的权限。配置文件默认位于产品无关的~/.config/wechat-appid-resolver/webstr.json(不绑定任何 agent 软件),也可用WEBSTR_CONFIG_FILE自定义。 - 命令行明文告警:一旦通过
--appkey/--appsecret传参,会提示其会暴露在进程列表与 shell 历史中,建议改用环境变量/配置文件。 - HTTPS 传输:请求全程走 HTTPS,密钥与签名不在 URL 中(位于表单体中)。
权限声明(提交市场审核用)
本 skill 运行时权限边界明确、最小化,便于审核与用户信任:
- 网络(出站):仅向固定网关
https://www.webstr.top/open/发起 HTTPS POST 查询;网关地址写死在代码中、不可自定义,杜绝请求被导向第三方服务器。不访问任何其他域名,不监听端口。 - 文件系统(读):仅读取配置文件
~/.config/wechat-appid-resolver/webstr.json(或环境变量WEBSTR_CONFIG_FILE指定的路径)以获取用户凭据。 - 文件系统(写):仅创建并写入上述配置文件本身(权限
0600),不会写入或覆盖任何其他文件。 - 不执行外部命令、不读取
WEBSTR_*之外的环境变量、不访问用户其他数据。 - 无密钥硬编码:appKey / appSecret 必须由用户自行配置;脚本内置常量仅含官方网关地址与公开签名算法,不含任何用户凭据。
返回字段说明
脚本会动态展示接口返回的全部字段(按 名称、APPID、类型、主体、原始ID、简介、Logo 的优先顺序,其余字段按接口原样追加),仅 app_update_time 不展示。常见字段如下:
| 字段 | 含义 |
|---|---|
| name | 名称 |
| appid | 输入的 appid |
| appidType | 类型:小程序 或 公众号 |
| author | 主体(认证企业/个人) |
| username | 原始ID(如 gh_0fc5d8395610,公众号可能为空) |
| description | 简介(公众号可能为空) |
| logo | 小程序/公众号 logo 图片地址 |
| weixinhao | 微信号(公众号常见,可能为空) |
| kefu | 客服信息(公众号常见,可能为空) |
> 字段值为空时显示 (空),以便区分「接口未返回该字段」与「字段本身为空」。
响应结构:{"code":200,"message":"success","data":{...}},仅 code=200 时 data 有效;code 非 200 时按 message 提示处理。
详细的接口参数、签名算法与错误码见 references/api_reference.md。
常见问题
Q:在哪里申请 appKey / appSecret?
A:登录 webstr.top 开放平台 用户中心,申请 appKey/appSecret。
Q:提示 appkey不存在 或 签名错误 怎么办?
A:appkey不存在 说明 appKey 填错或未申请;签名错误 说明 appSecret 与 appKey 不匹配,或请求时间戳过期(服务器拒绝过期请求),重试即可。
Q:返回 timestamp不能为空?
A:旧版本误用 JSON body 提交会触发此错误。本脚本已固定为表单格式,如遇此提示请升级到最新脚本。
Q:为什么有的APPID查不到?
A:仅合法有效的APPID可以查到;小程序的一般都可以查到,公众号部分可以查到。
了解更多
接口基于 webstr.top 开放平台 jx_appid/getData 构建。完整文档:https://www.webstr.top/tool/open/detail.html?api=jx_appid/getData