跳转到主要内容

juhecli-wx-app 个微应用授权

SKILL: juhecli-wx-app — 微信个微应用授权和小程序相关操作,包括 A8Key 授权、JS 登录、OAuth 授权、小程序短链等功能

使用案例

获取小程序短链JS 登录授权

获取网页授权

获取网页授权所需的 a8key 凭证
>帮我获取网页授权凭证 https://example.com/auth
// Agent 调用 wx app get_a8key 获取授权凭证
$juhe-cli wx app get_a8key '{"req_url": "https://example.com/auth", "scene": 1}'
{ "a8key": "ak_x9f2k8m3", "status": 0, "expire_time": 1713200000 }

创建小程序短链

为小程序页面创建可分享的短链接
>为小程序首页生成一个短链,appid 是 wx123456
// Agent 调用 wx app create_wxa_short_link 创建短链
$juhe-cli wx app create_wxa_short_link '{"appid": "wx123456", "page_path": "pages/index", "page_title": "首页"}'
{ "short_link": "https://wxaurl.cn/abc123def", "status": 0, "expire_time": 1715800000 }

概述

个微应用授权 SKILL 由 juhecli-wx-app 提供,支持微信应用授权和小程序相关的完整功能。 包括 A8Key 授权获取、JS 登录操作、OAuth 授权流程、扫码授权、小程序短链创建和解析等 12 个命令。 适用于需要集成微信登录、微信授权、小程序链接分享等场景。

应用授权操作通常涉及多个步骤的流程,如 OAuth 授权需要先发起授权再确认授权, 使用时需按照正确的流程顺序操作。

SKILL 包

SKILL 名称说明
juhecli-wx-app个微应用授权 - a8key/JS登录/OAuth授权/小程序短链操作

触发方式

当用户提出以下意图时,Agent 应激活此 SKILL:

  • "获取网页授权" / "获取 A8Key" / "网页授权凭证"
  • "OAuth 授权" / "完成微信授权" / "授权登录"
  • "扫码授权" / "扫码登录"
  • "JS 登录" / "JS 操作微信数据"
  • "创建小程序链接" / "生成小程序短链"
  • "解析小程序短链" / "这个短链指向哪里"

详细说明

A8Key 授权

获取网页 a8key

获取网页授权所需的 a8key 凭证,用于后续网页操作。

bash
wx app get_a8key '{"req_url": "https://example.com", "scene": 1, "client_version": 0, "device_type": ""}'

参数:

  • req_url (string, 必填) — 请求 URL [用户提供]
  • scene (int, 可选) — 场景值,默认 1
  • client_version (int, 可选) — 客户端版本
  • device_type (string, 可选) — 设备类型

返回值:

  • a8key 授权凭证,用于后续的网页授权操作

获取公众号 a8key

bash
wx app mp_get_a8key '{"req_url": "https://example.com", "scene": 1, "client_version": 0, "device_type": ""}'

JS 操作

JS 登录

通过 JS 接口进行扫码登录。

bash
wx app js_login '{"appid": "wx1234567890"}'

参数:

  • appid (string, 必填) — 应用 appid [用户提供]

JS 操作微信数据

bash
wx app js_operate_wxdata '{"appid": "wx123", "data": "{}", "grant_scope": ""}'

参数:

  • appid (string, 必填) — 应用 appid [用户提供]
  • data (string, 必填) — 操作数据 JSON [用户提供]
  • grant_scope (string, 可选) — 授权范围

JS 操作微信数据(VIP)

bash
wx app js_operate_wxdata_vip '{"appid": "wx123", "data": "{}", "grant_scope": ""}'

OAuth 授权

发起 OAuth 授权

bash
wx app oauth_authorize '{"url": "https://example.com", "username": "wxid_xxx", "scene": 7}'

参数:

  • url (string, 必填) — 授权 URL [用户提供]
  • username (string, 可选) — 用户 username
  • scene (int, 可选) — 场景值,默认 7

确认 OAuth 授权

bash
wx app oauth_authorize_confirm '{"url": "https://example.com", "scope": ["snsapi_userinfo"], "avatar_id": 0, "opt": 1}'

参数:

  • url (string, 必填) — 授权 URL [用户提供]
  • scope (array, 可选) — 授权范围列表,如 ["snsapi_userinfo"]
  • avatar_id (int, 可选) — 头像 ID
  • opt (int, 可选) — 操作类型,默认 1
OAuth 授权流程需要两步:先调用 oauth_authorize 发起授权, 然后调用 oauth_authorize_confirm 确认授权。

扫码授权

发起扫码授权

bash
wx app qrconnect_authorize '{"url": "https://example.com", "username": "wxid_xxx", "scene": 7}'

确认扫码授权

bash
wx app qrconnect_authorize_confirm '{"url": "https://example.com", "scope": ["snsapi_login"], "avatar_id": 0, "opt": 1}'
扫码授权同样需要两步:先调用 qrconnect_authorize 发起扫码授权, 用户扫码后调用 qrconnect_authorize_confirm 确认授权。

小程序链接

创建小程序短链

bash
wx app create_wxa_short_link '{"appid": "wx123", "page_path": "pages/index", "page_title": "首页"}'

参数:

  • appid (string, 必填) — 小程序 appid [用户提供]
  • page_path (string, 必填) — 页面路径 [用户提供]
  • page_title (string, 可选) — 页面标题 [用户提供]

返回值:

  • 小程序短链 URL,可直接分享到微信

解析小程序短链

bash
wx app resolve_wxa_short_link '{"short_link": "https://wxaurl.cn/xxx"}'

参数:

  • short_link (string, 必填) — 小程序短链 [用户提供]

返回值:

  • 原始小程序信息(appid、page_path 等)

解析 App 短链

bash
wx app resolve_wxa_app_short_link '{"short_link": "https://wxaurl.cn/xxx"}'

参数来源说明

参数来源标记获取方式
req_url[用户提供]用户提供需要授权的网页 URL
appid[用户提供]用户提供应用或小程序的 appid
url[用户提供]用户提供授权 URL
data[用户提供]用户提供操作数据 JSON
page_path[用户提供]用户提供小程序页面路径
short_link[用户提供]用户提供需要解析的短链
username[需查询]通过 db contact search 查询获取

典型工作流

网页授权流程

  1. wx app get_a8key — 获取网页授权凭证
  2. 使用凭证进行后续网页操作

OAuth 授权流程

  1. wx app oauth_authorize — 发起授权请求
  2. 用户确认授权
  3. wx app oauth_authorize_confirm — 确认授权,完成流程

扫码授权流程

  1. wx app qrconnect_authorize — 发起扫码授权
  2. 用户扫码
  3. wx app qrconnect_authorize_confirm — 确认扫码授权

JS 登录流程

  1. wx app js_login — 使用 appid 进行 JS 登录
  2. 获取登录凭证进行后续操作

小程序短链创建与分享

  1. wx app create_wxa_short_link — 创建短链
  2. 将短链分享到微信或嵌入消息

小程序短链解析

  1. 获取小程序短链
  2. wx app resolve_wxa_short_link — 解析获取原始信息
  3. 根据解析结果进行后续操作

AI Agent 调用示例

wx app get_a8key

text
// 用户:帮我获取网页授权凭证 https://example.com/auth
AI: 好的,我来获取授权凭证。
[调用 wx app get_a8key {"req_url":"https://example.com/auth","scene":1}]
AI: 授权凭证获取成功!a8key: xxxxx,可用于后续网页操作。

wx app oauth_authorize + confirm

text
// 用户:帮我完成 OAuth 授权 https://example.com/oauth
AI: 好的,我来执行 OAuth 授权流程。

[步骤 1: 发起授权]
[调用 wx app oauth_authorize {"url":"https://example.com/oauth","scene":7}]
→ 授权请求已发起

[步骤 2: 确认授权]
[调用 wx app oauth_authorize_confirm {"url":"https://example.com/oauth","scope":["snsapi_userinfo"],"opt":1}]
→ 授权成功

AI: OAuth 授权流程已完成!

wx app create_wxa_short_link + resolve

text
// 用户:创建小程序短链,appid 是 wx123456,页面是 pages/index,标题"首页"
AI: 好的,我来创建短链。
[调用 wx app create_wxa_short_link {"appid":"wx123456","page_path":"pages/index","page_title":"首页"}]
AI: 短链创建成功!链接: https://wxaurl.cn/abc123,可以分享到微信。

// 用户:解析这个短链 https://wxaurl.cn/abc123
AI: 好的,我来解析。
[调用 wx app resolve_wxa_short_link {"short_link":"https://wxaurl.cn/abc123"}]
AI: 解析成功!
- appid: wx123456
- 页面路径: pages/index
- 页面标题: 首页

wx app js_login

text
// 用户:用 appid wx1234567890 进行 JS 登录
AI: 好的,我来执行 JS 登录。
[调用 wx app js_login {"appid":"wx1234567890"}]
AI: JS 登录成功!已获取登录凭证。

完整工作流:OAuth 授权访问用户信息

text
// 用户:帮我用 OAuth 授权访问微信用户信息
AI: 好的,我来完成完整的 OAuth 授权流程。请提供授权 URL。
用户: https://myapp.com/wechat/auth

[步骤 1: 获取 a8key]
[调用 wx app get_a8key {"req_url":"https://myapp.com/wechat/auth","scene":1}]
→ a8key: "ak_xxx"

[步骤 2: 发起 OAuth 授权]
[调用 wx app oauth_authorize {"url":"https://myapp.com/wechat/auth","scene":7}]
→ 授权请求已发起

[步骤 3: 确认授权]
[调用 wx app oauth_authorize_confirm {"url":"https://myapp.com/wechat/auth","scope":["snsapi_userinfo"],"avatar_id":0,"opt":1}]
→ 授权完成,获取到用户信息访问权限

AI: OAuth 授权流程完成!已获取 snsapi_userinfo 权限,可以访问用户信息。

错误处理

  • appid 无效:返回应用不存在错误,请检查 appid 是否正确
  • URL 格式错误:返回参数错误,请检查 URL 格式是否合法
  • 授权超时:授权请求超时,需重新发起授权
  • 用户拒绝授权:确认步骤返回失败,用户取消了授权
  • 短链解析失败:检查短链是否有效、是否已过期
  • scene 参数错误:检查 scene 值是否符合微信文档要求
应用授权操作涉及用户隐私和权限,请确保在使用前获得用户明确授权, 并遵守微信平台的使用规范。所有授权操作应有明确的用户意图,不可未经用户同意擅自操作。