feat: add stable proactive delivery

This commit is contained in:
xmanrui 2026-08-30 11:24:53 +08:00
parent 410cb822d7
commit 31792d7bc8
88 changed files with 6427 additions and 488 deletions

View file

@ -329,4 +329,28 @@ export class WeixinRuntime {
});
return { sent: true };
}
async sendProactiveText(target, text, { signal } = {}) {
const toUserId = typeof target?.route?.toUserId === 'string'
? target.route.toUserId.trim() : '';
if (target?.kind !== 'user' || !toUserId) {
const error = new TypeError('Invalid Weixin proactive delivery target');
error.code = 'invalid-target';
throw error;
}
if (!this.#status.ready || !this.#abortController) {
const error = new Error('Weixin runtime is not connected');
error.code = 'bot-not-connected';
throw error;
}
signal?.throwIfAborted();
await this.#api.sendText({
baseUrl: this.#config.baseUrl,
token: this.#token,
toUserId,
text,
signal: signal ?? this.#abortController.signal,
});
return { sent: true };
}
}