wecomx-runtime 1.2.0

Authenticated transport and client builder for WeCom
Documentation

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?;