@lark-anycross/integration
v0.3.2
Published
AnyCross Integration SDK for Node.js
Readme
@lark-anycross/integration
轻量封装连接器调用能力,提供 IntegrationClient。
初始化参数说明
new IntegrationClient(opts) 的参数 opts 支持以下配置:
apiKey?: string- 用于鉴权;默认从
process.env.LARK_INTEGRATION_API_KEY读取
- 用于鉴权;默认从
baseUrl?: string- 平台基础域名;默认从
process.env.LARK_INTEGRATION_BASE_URL读取,回退为https://anycross.feishu.cn/
- 平台基础域名;默认从
headers?: Record<string, string> | Headers | [string, string][]- 额外请求头;默认
{}。
- 额外请求头;默认
debug?: boolean- 是否开启调试日志;默认取
process.env.LARK_INTEGRATION_DEBUG === 'true'
- 是否开启调试日志;默认取
timeoutMs?: number- 请求超时时间(毫秒);默认
60000,最小需大于0
- 请求超时时间(毫秒);默认
logger?: { info; error; warning; warn? }- 自定义日志器;默认使用
globalThis.logger(如存在)或console
- 自定义日志器;默认使用
示例:
import { IntegrationClient } from '@lark-anycross/integration'
const client = new IntegrationClient({
apiKey: 'YOUR_API_KEY',
baseUrl: 'https://anycross.feishu.cn/',
headers: { 'X-Custom-Header': 'demo' },
debug: false,
timeoutMs: 30000,
})
const { output } = await client.connector.crm({
version: '1.0',
action: 'syncLead',
connectionID: 'conn_xxx',
input: { id: '123' },
})通过环境变量配置初始化
支持通过环境变量注入初始化信息,无需在代码中显式传入。
可用环境变量:
LARK_INTEGRATION_API_KEY:用于请求鉴权LARK_INTEGRATION_BASE_URL:平台基础域名,可选配置,默认https://anycross.feishu.cn/LARK_INTEGRATION_DEBUG:是否开启 Debug 日志(值为字符串'true'时开启),可选配置
示例(使用 .env 或 shell 环境):
# .env 或 shell 中设置
LARK_INTEGRATION_API_KEY=sk_xxx
LARK_INTEGRATION_BASE_URL=https://anycross.feishu.cn/
LARK_INTEGRATION_DEBUG=true代码中直接从环境变量读取:
import 'dotenv/config'
import { IntegrationClient } from '@lark-anycross/integration'
// 显式参数缺省时,将自动读取对应环境变量
const client = new IntegrationClient()
const { output } = await client.connector.crm({
version: '1.0',
action: 'syncLead',
})优先级说明:显式传入的 opts 参数优先于环境变量。
Debug 模式说明
当开启 Debug 模式(debug: true 或设置环境变量 LARK_INTEGRATION_DEBUG=true)时,SDK 会打印调用请求与响应的详细日志,便于排查问题:
- 请求日志:包含
url、method、headers(Authorization将被遮蔽)与body预览 - 响应日志:包含
status、ok、data与logID(来自响应头x-tt-logid)
可选自定义日志器:
const logger = {
info: (msg: string, payload?: unknown) => console.info(msg, payload),
error: (msg: string, payload?: unknown) => console.error(msg, payload),
warning: (msg: string, payload?: unknown) => console.warn(msg, payload),
}
const client = new IntegrationClient({ debug: true, logger })注意:Debug 日志较为详细,建议在本地开发或问题定位时开启,生产环境谨慎使用。
