Skip to main content

Crate wecomx_runtime

Crate wecomx_runtime 

Source
Expand description

WeCom 认证运行时:鉴权客户端、鉴权 Transport 与客户端构建。

组合 wecomx-auth 的认证能力与 [wecomx-transport] 的请求 传输,为第三方应用提供开箱即用的 Library 入口:

  • WecomClient:门面客户端——鉴权 + 动态服务发现 + schema 驱动方法 调用一步到位(service() / method() / run(argv));
  • WecomClientBuilder:构建 WecomClient 或仅带鉴权的 Transport(token provider、超时、默认头等);
  • WecomBackend:统一出网后端——持有 token 即注入 Authorization: Bearer <token>;挂 RequireAuth 的端点先过门禁; 命中 853004(token 失效)时经 TokenProvider 静默刷新并重放原请求一次(载荷经 HttpRequestPayload 工厂克隆,零成本重放);
  • endpoint_catalog:网关扁平协议的端点目录覆写(配合 wecomx::Client 使用)。

§Quick start

use std::sync::Arc;
use std::time::Duration;
use wecomx_runtime::{BotGatewayTokenProvider, EncryptedFileCredentialStore, WecomClientBuilder};

let store = Arc::new(EncryptedFileCredentialStore::new("~/.config/wecom"));
let provider = BotGatewayTokenProvider::new("bot-id", "secret", store);

let client = WecomClientBuilder::new()
    .token_provider(Arc::new(provider))
    .timeout(Duration::from_secs(10))
    .build()
    .await?;

// 程序化调用(服务/方法名由 discovery 下发)
let svc = client.service("hr").await?;
let result = svc.method(&["users", "list"])?.invoke(serde_json::json!({})).await?;

Re-exports§

pub use backend::TOKEN_EXPIRED_ERRCODE;
pub use backend::WecomBackend;
pub use backend::is_token_expired;
pub use backend::set_bearer_token;
pub use builder::DEFAULT_BASE_URL;
pub use builder::DEFAULT_BIN_NAME;
pub use builder::WecomClientBuilder;
pub use catalog::endpoint_catalog;
pub use client::WecomClient;

Modules§

backend
鉴权出网后端:动态 Authorization 注入 + 853004 静默刷新 + 重放。
builder
WecomClientBuilder:一键构建带鉴权的 WeCom 客户端 / transport。
catalog
内置 endpoint 目录覆写(协议差异由产品层定义)。
client
WecomClient:面向第三方应用的门面客户端。

Structs§

AccessToken
访问令牌(Bearer token)。
BotCredential
Bot 凭据(botid + secret)。
BotGatewayTokenProvider
AI Bot CLI 网关 Token Provider:botid+secret 签名调用 /cgi-bin/aibot/cli/get_cli_config 换取 Bearer token。
Credentials
本地凭据总账:bot 信息与 Bearer token 共存,保证原子更新。
EncryptedFileCredentialStore
加密文件凭据存储。
FlatApiResponse
网关扁平协议响应体:顶层只有 errcode / errmsg / results_json
FlatRes
扁平响应信封(鉴权引导等「不套网关 results_json 信封」的接口使用)。
MemoryCredentialStore
内存凭据存储(进程内共享)。
NestedRes
网关扁平协议响应信封。
RequireAuth
端点调用前的 token 门禁标记(存在即生效)。
SuppressAuth
抑制 Authorization 注入的标记(换取 token 的引导端点专用)。

Enums§

AuthError
wecomx-auth 统一错误。

Traits§

CredentialStore
凭据存储抽象。
TokenProvider
Token Provider 抽象:运行时经它获取与刷新访问令牌。

Functions§

auth_endpoint
按 URL 装配鉴权引导端点(换取 Bearer token 的专用 Endpoint)——引导端点 的唯一装配原语。