当前浏览的是 v7 预览版文档(v7 尚未正式发布,API 可能随版本调整)。本页是 v7 新增内容,去 v6 正式版文档首页
@ikenxuan/amagi
类型参考

类、枚举与变量

33 个符号,由 scripts/api-extractor.ts 从 packages/core/src/index.ts 抽取

本页 33 个符号由 packages/core/src/index.ts 的导出面在构建期生成, 签名、参数表与源码位置都取自 TypeScript 编译器对源码的解析。全部导出的索引见 类型索引,同一批能力的 SDK 与 HTTP 形态见 SDK 方法页 与 HTTP 端点参考。

AdditionalType

相关内容卡片类型枚举 用于标识动态中附加的相关内容卡片的类型

Prop

Type

源码:src/types/ReturnDataType/Bilibili/Dynamic/index.ts

amagi

const amagi: typeof Client

源码:src/index.ts

AMAGI_BUS_EVENT_NAMES

全部事件名(12 个与 v6 对齐 + 3 个会话事件),用于遍历与穷尽性校验。

与 AmagiBusEventMap 由 satisfies 挂钩:表里多一个键而这里没跟上 就编译不过,所以「全部」不是靠人记着的。

const AMAGI_BUS_EVENT_NAMES: readonly ["log:info", "log:warn", "log:error", "log:debug", "log:mark", "http:request", "http:response", "http:error", "network:retry", "network:error", "api:success", "api:error", "session:state", "session:error", "session:success"]

源码:src/runtime/events.ts

amagiEvents

Amagi 全局事件发射器实例

const amagiEvents: TypedEventEmitter

示例

import {  } from '@ikenxuan/amagi'

// 监听 API 成功事件
.('api:success', () => {
  .(`[${.}] ${.} 耗时 ${.}ms`)
})

源码:src/model/events.ts

AmagiThrownError

unwrap 失败时抛出的 Error 子类。

为什么不直接 throw result.error:AmagiError 是纯数据契约, 抛非 Error 对象会丢栈、e instanceof Error 为假,Node 的 unhandledRejection 打印与各家日志 / 监控(Sentry 归为 “Non-Error exception captured”)都处理不好。

AmagiError 的字段全部平铺在实例上(kind / code / message / retryable,以及 platform / http / issues / raw),所以 catch (e) { (e as AmagiError).kind } 直接可用;原始对象在 error, error.cause 原样进 Error.cause(不吞)。

class AmagiThrownError

源码:src/contracts/result.ts

let "": unknown

code

稳定的字符串错误码

let readonly code?: AmagiError["code"]

error

失败信封里那个错误对象,原样保留(引用相等)

let readonly error?: AmagiError

http

真实发生的 HTTP 状态

let readonly http?: AmagiError["http"]

issues

kind === 'validation' 时的字段级错误

let readonly issues?: AmagiError["issues"]

kind

判别键,跨平台统一的错误大类

let readonly kind?: AmagiError["kind"]

platform

平台原始错误码与文案

let readonly platform?: AmagiError["platform"]

raw

原始响应体(createClient({ debug: true }) 时才有)

let readonly raw?: unknown

retryable

是否值得重试

let readonly retryable?: boolean

ApiError

API错误类

class ApiError

源码:src/utils/errors.ts

构造API错误

let "": unknown

code

let readonly code?: number

platform

let readonly platform?: string

BILIBILI_CORRESPOND_PUBKEY

B站 correspondPath 的 RSA 公钥(1024bit)。

删库前官方文档公开的明文公钥,多来源字节一致。correspondPath = 用它 RSA-OAEP-SHA256 加密 refresh_{timestamp} 再 hex。公钥内置是对的 —— 它本就是前端公开常量 (laputa 主包运行时从 CDN 的 wasm 里拿的也是它),不是密钥。

const BILIBILI_CORRESPOND_PUBKEY: "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg\nUc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71\nnzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40\nJNrRuoEUXpabUzGB8QIDAQAB\n-----END PUBLIC KEY-----"

源码:src/platforms/bilibili/cookieRefresh.ts

bilibiliApiUrls

B站 URL 构造器(v6 实现)。v7 门面(client.bilibili)上的是 apiUrls(v7 那份,在 platforms/bilibili/api.ts);这一份只在包顶层 (import { bilibiliApiUrls } from '@ikenxuan/amagi')与 @ikenxuan/amagi/compat 可达。

端点用的是 platforms/bilibili/api.ts 里的同名构造器,两份当前输出一致: 26 个方法逐个比对,请求主机与路径逐字相同,唯一差别是 v7 的 getComments 把 plat / seek_rpid / web_location 三个本来写死的值改成可由入参覆盖, 缺省值与这里相同。但仍是两份实现、不保证继续一致。

返回形态:方法给 URL 字符串(getXxx(): string),只有 getCaptchaFromVoucher / validateCaptcha 两个给 { Url, Body }。

新代码请用 client.bilibili.apiUrls(v7 那份);这一份的调用方按原样保留。

const bilibiliApiUrls: BilibiliAPI

源码:src/platforms/legacy/bilibili/API.ts

bilibiliFetcher

B站数据获取器(静态)。 包含所有 B站 API 方法,调用时需要传递 cookie

const bilibiliFetcher: BilibiliFetcher

示例

import {  } from '@ikenxuan/amagi'

const  = 'SESSDATA=xxx; bili_jct=yyy'
const  = await .({ : 'BV1xx411c7mD' }, )

源码:src/model/fetchers/bilibili/index.ts

bilibiliUtils

B站相关功能模块 (工具集)

const bilibiliUtils: bilibiliUtilsModel

源码:src/platforms/bilibili/utils.ts

createAmagiClient

创建Amagi客户端实例

已废弃(@deprecated):请改用 createClient 或默认导出。这是同一个函数对象的别名, 返回值就是 createClient 的结果:douyin / bilibili 上带 login 命名空间(扫码登录会话),events 是实例级总线(负载带 meta)。
const createAmagiClient: typeof createClient

返回值:包含数据获取方法、服务器启动方法、绑定Cookie的平台工具集和API对象的对象

源码:src/server/index.ts

CreateApp

After instantiation, it can interact with the specified platform API to quickly obtain data.

const CreateApp: AmagiConstructor

源码:src/index.ts

default

After instantiation, it can interact with the specified platform API to quickly obtain data.

const default: typeof CreateApp

源码:src/index.ts

douyinApiUrls

抖音 URL 构造器(v6 实现)。v7 门面(client.douyin)上的是 apiUrls(v7 那份,在 platforms/douyin/api.ts);这一份只在包顶层 (import { douyinApiUrls } from '@ikenxuan/amagi')与 @ikenxuan/amagi/compat 可达。

端点用的是 platforms/douyin/api.ts 里的同名构造器,两份已经漂移: 这里的 getWorkDetail 打 www.douyin.com 且不带 request_source / origin_type,而 v7 那份打 www-hj.douyin.com 并带那两个参数 —— v7 侧注释记着实测:前者 9/18 被 Argus 拦、后者 18/18 通过。 逐字比对下来这是两份 URL 上唯一的差异(其余方法的主机与查询串相同), 但两份实现各自演进,不保证继续一致。

新代码请用 client.douyin.apiUrls(v7 那份);这一份的调用方按原样保留。

默认实例,使用默认浏览器版本 125.0.0.0。

const douyinApiUrls: DouyinAPI

源码:src/platforms/legacy/douyin/API.ts

douyinFetcher

抖音数据获取器(静态)。 包含所有抖音 API 方法,调用时需要传递 cookie

const douyinFetcher: DouyinFetcher

示例

import {  } from '@ikenxuan/amagi'

const  = 'ttwid=xxx'
const  = await .({ : '7123456789' }, )

源码:src/model/fetchers/douyin/index.ts

douyinPassport

抖音 passport 扫码登录协议实现

login.douyin.com 的接口与 www.douyin.com 的数据接口是两套体系:

  • query 需要 p_no / sign / qs 三重签名,外加 x-tt-passport-aid-sign 请求头
  • a_bogus 用的是 bdms 1.0.1.19 形态(盐值 dhzx、pageId 7571), 与 ../sign/a_bogus.ts 里数据接口用的旧版(盐值 cus、pageId 6241)互不通用
  • request_host 在 URL 里是双重编码,参与 sign 计算时只编码一次

因此这里单独实现一套,而不是复用 douyinSign。

参考来源

以下项目公开了本模块所需的协议细节。实现均按本仓库风格重写,未复制其代码:

SM3(GM/T 0004-2012)与 MurmurHash3 为公开标准算法。

源码:src/platforms/douyin/passport/index.ts

aBogus

生成 a_bogus

返回值:a_bogus 参数值(未做 URL 编码)

源码:src/platforms/douyin/passport/aBogus.ts

BDMS_SDK_VERSION

bdms SDK 版本号,同时也是 passport 通用参数里的 p_bd

let BDMS_SDK_VERSION: unknown

源码:src/platforms/douyin/passport/aBogus.ts

DouyinPassportClient

class DouyinPassportClient

源码:src/platforms/douyin/passport/client.ts

PASSPORT_USER_AGENT

与签名里的浏览器环境保持一致的 UA

let PASSPORT_USER_AGENT: unknown

源码:src/platforms/douyin/passport/client.ts

PassportPayload

passport 接口的通用响应形状

源码:src/platforms/douyin/passport/client.ts

PassportResponse

源码:src/platforms/douyin/passport/client.ts

CookieJar

class CookieJar

源码:src/platforms/douyin/passport/cookieJar.ts

INTERNAL_PREFIX

本地会话状态的 cookie 名前缀,这些条目永远不会发给服务端

let INTERNAL_PREFIX: unknown

源码:src/platforms/douyin/passport/cookieJar.ts

makeAidSign

计算 x-tt-passport-aid-sign 请求头

源码:src/platforms/douyin/passport/params.ts

makeSignAndQs

计算 sign 与 qs

源码:src/platforms/douyin/passport/params.ts

randomHex

随机十六进制串,用于 biz_trace_id 一类的追踪 ID

源码:src/platforms/douyin/passport/params.ts

utcNoonTimestamp

当日 UTC 12:00 的秒级时间戳,aid-sign 以此为密钥基准

源码:src/platforms/douyin/passport/params.ts

xor5Hex

逐字节异或 5 后转十六进制,SDK 用它编码参数名列表、验证码与密码

源码:src/platforms/douyin/passport/params.ts

parsePollResult

解析 check_qrconnect 响应为状态机可消费的结果

源码:src/platforms/douyin/passport/parser.ts

parseQrcode

解析 get_qrcode 响应

返回值:二维码信息,缺少 token 时返回 null

源码:src/platforms/douyin/passport/parser.ts

parseSendCodeResult

解析 send_code 响应

源码:src/platforms/douyin/passport/parser.ts

parseValidateCodeResult

解析 validate_code 响应

源码:src/platforms/douyin/passport/parser.ts

sm3

计算 SM3 摘要

返回值:32 字节摘要

源码:src/platforms/douyin/passport/sm3.ts

sm3Hex

十六进制摘要,仅用于测试与排查

源码:src/platforms/douyin/passport/sm3.ts

sm3Twice

连续两次 SM3(bdms 对 URL 与盐值的处理方式)

返回值:32 字节摘要

源码:src/platforms/douyin/passport/sm3.ts

TicketGuard

bd-ticket-guard 会话

状态全部读写自传入的 CookieJar,因此与 passport 的无状态调用形态天然兼容。

class TicketGuard

源码:src/platforms/douyin/passport/ticketGuard.ts

TicketGuardState

一次登录会话持有的 ticket-guard 状态

源码:src/platforms/douyin/passport/ticketGuard.ts

PollResult

一次轮询的结果

源码:src/platforms/douyin/passport/types.ts

QrcodeInfo

二维码信息,get_qrcode 的解析结果

源码:src/platforms/douyin/passport/types.ts

SendCodeResult

发送短信验证码的结果

源码:src/platforms/douyin/passport/types.ts

ValidateCodeResult

提交短信验证码的结果

源码:src/platforms/douyin/passport/types.ts

VerifyContext

二次验证上下文

源码:src/platforms/douyin/passport/types.ts

VerifyWay

单个验证方式

源码:src/platforms/douyin/passport/types.ts

buildVerifyBody

发码与验码共用的表单字段。

字段顺序与「空值也要占位」的行为对齐官方验证页 SDK 的抓包形态: verify_ticket / new_verify_flow / std_verify_flow_id / std_verify_token 即使为空也必须出现,缺字段会被判为伪造请求。

返回值:可直接交给 client.liteRequest 的表单

源码:src/platforms/douyin/passport/verify.ts

isSmsCodeVerifyWay

判断某个验证方式能否用短信验证码流程完成。

返回值:能走短信收码流程时为 true

源码:src/platforms/douyin/passport/verify.ts

resolveVerifyWay

选出本次要用的 std_verify_way。

优先用调用方指定的;否则从服务端给出的可选方式里挑一个能收码的;都没有才回退到 默认值。不能写死 mobile_sms_verify —— 遇到辅助验证的账号会因为 way 对不上 而失败,也不能取 verifyWays[0],那一项未必是短信方式。

返回值:本次使用的 std_verify_way

源码:src/platforms/douyin/passport/verify.ts

SMS_ACT_TYPE

短信验证码的 act_type

let SMS_ACT_TYPE: unknown

源码:src/platforms/douyin/passport/verify.ts

SMS_CODE_WAY_PATTERN

可以用「收 6 位验证码」这套流程走完的验证方式。

除官方常见的 mobile_sms_verify,账号被判定需要辅助验证时会给出 assist_mobile_sms_verify,两者都是下行短信收码,走同一对 send_code / validate_code 接口,区别只在 std_verify_way 的取值。 上行短信(*_up_sms_verify)要求用户从手机发短信出去,是另一套接口,不在此列。

let SMS_CODE_WAY_PATTERN: unknown

源码:src/platforms/douyin/passport/verify.ts

SMS_VERIFY_WAY

短信验证码的验证方式标识,服务端未给出可用方式时的兜底值

let SMS_VERIFY_WAY: unknown

源码:src/platforms/douyin/passport/verify.ts

douyinSign

class douyinSign

源码:src/platforms/legacy/douyin/sign/index.ts

AB

a_bogus 签名算法

AB(url: string, userAgent?: string): string

Prop

Type

返回值:对此地址签名后的URL查询参数

AcSignature

__ac_signature 反爬签名算法(纯算,不执行挑战页脚本)

与 AB / XB 不同,它签的不是 URL 而是服务端下发的 __ac_nonce:零 cookie 打 抖音页面会拿到一份 VMP 挑战页 + Set-Cookie 里的 __ac_nonce,带着 __ac_nonce + __ac_signature 再请求一次才放行(访客 cookie 就是这么铸出来的)。

签名体带一个整秒时间戳,所以同一 nonce 在同一秒内结果一致、跨秒就变; atMs 可显式传入以复现某一刻的结果。

AcSignature(nonce: string, userAgent?: string, atMs?: number): string

Prop

Type

返回值:47 字符的 __ac_signature

Mstoken

生成一个指定长度的随机字符串

Mstoken(length: number): string

Prop

Type

SecSdk

x-secsdk-web-signature 签名算法

与 AB / XB 不同,它改写整条 URL 而不是返回一个参数值:签名算的是规范化后的 query, 服务端也按收到的 query 校验,所以必须发送返回的这条 URL。只对 SDK 策略表内的 path 生效, 其余原样返回,因此可以无条件套用。必须是最后一步(webid → a_bogus → 本签名)。

SecSdk(url: string, options: ApplySecsdkOptions): string

Prop

Type

返回值:需要加签时返回带签名的完整 URL,否则原样返回

VerifyFpManager

生成一个唯一的验证字符串

VerifyFpManager(): string

XB

X-Bogus 签名算法

XB(url: string, userAgent?: string): string

Prop

Type

返回值:对此地址签名后的URL查询参数

douyinUtils

抖音相关功能模块 (工具集)

const douyinUtils: douyinUtilsModel

源码:src/platforms/douyin/utils.ts

DynamicType

动态类型枚举

独立成叶子模块:Dynamic 子树各叶子类型文件都要用它做判别字段, 若定义在 DynamicInfo/index.ts 会形成叶子反向导入 barrel 的环。

它是运行时 enum,不是任何端点响应的形状映射,所以没有「形状序号 _V<n>」, 也不必按响应类型的目录约定包一层。

Prop

Type

源码:src/types/ReturnDataType/Bilibili/DynamicType.ts

KUAISHOU_H5_CAPTCHA_RESULT

H5 REST 的风控业务码

const KUAISHOU_H5_CAPTCHA_RESULT: 2001

源码:src/platforms/kuaishou/captcha.ts

KUAISHOU_PC_CAPTCHA_RESULT

PC GraphQL 的风控业务码

const KUAISHOU_PC_CAPTCHA_RESULT: 400002

源码:src/platforms/kuaishou/captcha.ts

kuaishouApiUrls

快手 URL 构造器(v6 实现)。v7 门面(client.kuaishou)上的是 apiUrls(v7 那份,在 platforms/kuaishou/api.ts);这一份只在包顶层 (import { kuaishouApiUrls } from '@ikenxuan/amagi')与 @ikenxuan/amagi/compat 可达。

该对象只负责返回请求描述,不直接发起网络请求。

端点用的是 platforms/kuaishou/api.ts 里的同名构造器,两份已经漂移: 这里的 videoWork / comments 打 www.kuaishou.com/graphql(GraphQL 的 visionVideoDetail / commentListQuery),v7 那份换成了 H5 分享页接口 c.kuaishou.com —— videoWork 是免签的 POST /rest/wd/ugH5App/photo/simple/info(实测是主通道:分享页 SSR 的 INIT_STATE 就是这条填的),comments 是 POST /rest/wd/photo/comment/list; v7 还多出 videoWorkFull(签名的 POST /rest/wd/photo/info,实测稳定撞 2001 风控)与 danmaku 两个方法。

返回形态不是 URL 字符串:这一份给 KuaishouLiveApiRequest(live_api,带 method / body / signPath / requiresSign)或 KuaishouGraphqlRequest; v7 那份给 KuaishouH5Request(method / body / signPath / referer / requiresSign)或 KuaishouGraphqlRequest。

新代码请用 client.kuaishou.apiUrls(v7 那份);这一份的调用方按原样保留。

const kuaishouApiUrls: API

源码:src/platforms/legacy/kuaishou/API.ts

kuaishouFetcher

快手数据获取器(静态)。 包含所有快手 API 方法,调用时需要传递 cookie

const kuaishouFetcher: KuaishouFetcher

示例

import {  } from '@ikenxuan/amagi'

const  = 'did=xxx'
const  = await .({ : '3x123456789' }, )

源码:src/model/fetchers/kuaishou/index.ts

kuaishouSign

快手签名工具集。

负责将请求描述对象转换为带 __NS_hxfalcon / kww 的最终请求材料。

class kuaishouSign

源码:src/platforms/legacy/kuaishou/sign/index.ts

generateHxfalconFromPayload

根据结构化签名载荷生成 __NS_hxfalcon。

generateHxfalconFromPayload(payload: KuaishouHxfalconPayload): Pick<KuaishouLiveApiSignature, "signResult" | "signInput" | "catVersion">

Prop

Type

返回值:包含最终签名串、sign input 与 caver 的结果

generateKww

生成快手请求头中的 kww 值。

generateKww(cookie?: string): string

Prop

Type

返回值:kww 请求头值

getCatVersion

获取当前纯算法运行时使用的 caver。

getCatVersion(): string

返回值:快手 caver 值

signLiveApiRequest

为结构化的快手 live_api 请求描述对象签名。

这是项目层更推荐使用的入口,因为它能显式保留 signPath 元数据。

signLiveApiRequest(request: KuaishouLiveApiRequest, cookie?: string): KuaishouLiveApiSignature

Prop

Type

返回值:带签名 URL、附加请求头和调试信息

signLiveApiUrl

为快手 live_api URL 签名。

signLiveApiUrl(url: string, cookie?: string, signPath?: string): KuaishouLiveApiSignature

Prop

Type

返回值:带签名 URL、附加请求头和调试信息

kuaishouUtils

快手相关功能模块 (工具集)

const kuaishouUtils: kuaishouUtilsModel

源码:src/platforms/kuaishou/utils.ts

MajorType

转发动态种子动态主体类型枚举

Prop

Type

源码:src/types/ReturnDataType/Bilibili/Dynamic/index.ts

ValidationError

参数验证错误类

class ValidationError

源码:src/utils/errors.ts

构造参数验证错误

let "": unknown

errors

let readonly errors?: Array<{ field: string; message: string }>

fromZodError

从Zod错误创建验证错误

fromZodError(zodError: zod.ZodError<any>, requestPath?: string): ValidationError

Prop

Type

返回值:验证错误实例

requestPath

let readonly requestPath?: string

XIAOHONGSHU_ANTI_SPAM_STATUS

反垃圾状态码。平台 redcaptcha SDK 里的名字是 antiSpam

const XIAOHONGSHU_ANTI_SPAM_STATUS: 471

源码:src/platforms/xiaohongshu/captcha.ts

XIAOHONGSHU_ANTI_SPIDER_STATUS

反爬状态码。平台 redcaptcha SDK 里的名字是 antiSpider

const XIAOHONGSHU_ANTI_SPIDER_STATUS: 461

源码:src/platforms/xiaohongshu/captcha.ts

xiaohongshuApiUrls

小红书 URL 构造器(v6 实现)。v7 门面(client.xiaohongshu)上的是 apiUrls(v7 那份,在 platforms/xiaohongshu/api.ts);这一份只在包顶层 (import { xiaohongshuApiUrls } from '@ikenxuan/amagi')与 @ikenxuan/amagi/compat 可达。

端点用的是 platforms/xiaohongshu/api.ts 里的同名构造器,两份当前输出一致 (七个方法的主机、路径与 body 逐个比对相同),但方法签名有两点差别: 这里的 searchNotes 自己调 xiaohongshuSign.getSearchId() 生成 search_id, v7 那份要调用方把 searchId 显式传进来(模块因此保持纯函数、可复现); emojiList 这里收一个被忽略的参数,v7 那份不收参数。仍是两份实现、 不保证继续一致。

返回形态不是 URL 字符串:两份都给 { Url, Body, apiPath } 三段(v7 那份 的类型名是 XhsRequestDescription)—— x-s 签名只吃 pathname、POST 的 body 又要参与签名,一个字符串装不下这三样。

新代码请用 client.xiaohongshu.apiUrls(v7 那份);这一份的调用方按原样保留。

const xiaohongshuApiUrls: { homeFeed(data?: Omit<{ methodType: "homeFeed"; cursor_score?: string | undefined; num?: number | undefined; refresh_type?: number | undefined; note_index?: number | undefined; category?: string | undefined; search_key?: string | undefined; }, "methodType">): { ...; }; ... 5 more ...; searchNotes(data: Omit<...>): ...

源码:src/platforms/legacy/xiaohongshu/API.ts

xiaohongshuFetcher

小红书数据获取器(静态)。 包含所有小红书 API 方法,调用时需要传递 cookie

const xiaohongshuFetcher: XiaohongshuFetcher

示例

import {  } from '@ikenxuan/amagi'

const  = 'a1=xxx; web_session=xxx'
const  = await .({ : 'n1', : 'tk' }, )

源码:src/model/fetchers/xiaohongshu/index.ts

xiaohongshuSign

小红书签名算法类

class xiaohongshuSign

源码:src/platforms/legacy/xiaohongshu/sign/index.ts

client

let client: unknown

createGuestCookie

创建包含 web_session 的小红书 Web 端游客 Cookie。

requestConfig 会透传到游客会话初始化请求,可用于配置代理、超时等传输参数。

createGuestCookie(requestConfig?: AxiosRequestConfig): Promise<string>

Prop

Type

extractA1FromCookie

从cookie字符串中提取a1值

按名精确匹配(contracts/cookie.ts 的 getCookieValue)—— 正则匹配会在 xa1=WRONG; a1=RIGHT 这类输入上取错值。未命中返回空串(getCookieValue 返回 undefined,这里用 ?? '' 承接)。

extractA1FromCookie(cookieString: string): string

Prop

Type

返回值:a1 cookie值

generateXB3Traceid

生成X-B3-Traceid

generateXB3Traceid(): string

返回值:16位随机字符串

generateXSCommon

生成X-S-Common参数

generateXSCommon(cookies: string): string

Prop

Type

返回值:Base64编码的随机字符串

generateXSGet

生成GET请求的X-S签名

generateXSGet(path: string, a1Cookie: string, clientType: string, params: Record<string, any>): string

Prop

Type

返回值:X-S签名

generateXSPost

生成POST请求的X-S签名

generateXSPost(path: string, a1Cookie: string, clientType: string, body: Record<string, any>): string

Prop

Type

返回值:X-S签名

generateXT

生成X-T时间戳

generateXT(): number

返回值:当前时间戳字符串

getSearchId

生成搜索ID

let getSearchId: unknown

返回值:搜索ID字符串

xiaohongshuUtils

小红书相关功能模块 (工具集)

const xiaohongshuUtils: xiaohongshuUtilsModel

源码:src/platforms/xiaohongshu/utils.ts

On this page