@flink-app/whatsapp-plugin

中文文档
2.0.0-alpha.134发布于 2026/11/07MITTypeScriptCommonJS零依赖近 30 天下载 2167

Flink plugin for bi-directional WhatsApp messaging via Cloud API with auto-discovered WhatsappHandler files

原始使用文档
文档目录6 节
  1. Features
  2. Quick Start
  3. Documentation
  4. Meta App Setup
  5. CLI
  6. License

@flink-app/whatsapp-plugin

Bi-directional WhatsApp messaging plugin for Flink via the WhatsApp Cloud API. No external SDK — uses native fetch.

Features

  • Auto-discovered WhatsappHandler files via Flink's compiler extension
  • Route matching by message type, sender, text pattern, and connection
  • Send text, templates, images, documents, interactive buttons/lists, locations, reactions
  • Multi-connection support (multiple WhatsApp Business phone numbers)
  • Webhook signature verification (HMAC-SHA256)
  • Message status tracking (sent, delivered, read, failed)
  • 24-hour conversation window awareness with template message support
  • Markdown to WhatsApp formatting converter
  • CLI tool for sending test messages

Quick Start

pnpm add @flink-app/whatsapp-plugin
// flink.config.js
const { compilerPlugin } = require("@flink-app/whatsapp-plugin/compiler");
module.exports = { compilerPlugins: [compilerPlugin()] };
// src/index.ts
import { whatsappPlugin } from "@flink-app/whatsapp-plugin";

new FlinkApp<Ctx>({
    plugins: [
        whatsappPlugin<Ctx>({
            connection: {
                accessToken: process.env.WHATSAPP_ACCESS_TOKEN!,
                phoneNumberId: process.env.WHATSAPP_PHONE_NUMBER_ID!,
                verifyToken: process.env.WHATSAPP_VERIFY_TOKEN!,
                appSecret: process.env.WHATSAPP_APP_SECRET!,
            },
        }),
    ],
});
// src/whatsapp-handlers/HandleText.ts
import { WhatsappHandler, WhatsappRouteProps } from "@flink-app/whatsapp-plugin";

export const Route: WhatsappRouteProps = { type: "text" };

const handler: WhatsappHandler<Ctx> = async ({ message, whatsapp }) => {
    await whatsapp.reply(message, `Echo: ${message.text}`);
};

export default handler;

Documentation

See the skill documentation for complete usage guide including routing, multi-connection setup, template messages, interactive messages, media handling, and more.

Meta App Setup

  1. Create a Meta App at developers.facebook.com
  2. Add the WhatsApp product
  3. Configure webhook URL to https://your-domain.com/webhooks/whatsapp
  4. Subscribe to the messages webhook field
  5. Generate a permanent access token via a System User

CLI

pnpm exec flink-whatsapp send --token <token> --phone-id <id> --to <number> "Hello!"

License

MIT

版本与发布记录

@flink-app/whatsapp-plugin 共发布 61 个版本,首次发布于 2026/03/23;过去 12 个月发布了 61 个版本。

版本发布日期距今
2.0.0-alpha.134latest2026/11/078 天前
2.0.0-alpha.1332026/11/069 天前
2.0.0-alpha.1322026/11/0510 天前
2.0.0-alpha.1312026/10/2818 天前
2.0.0-alpha.1302026/10/2521 天前
2.0.0-alpha.1292026/10/2521 天前

关于 @flink-app/whatsapp-plugin 的常见问题

@flink-app/whatsapp-plugin 是什么?

Flink plugin for bi-directional WhatsApp messaging via Cloud API with auto-discovered WhatsappHandler files

如何安装 @flink-app/whatsapp-plugin?

在项目目录运行 npm install @flink-app/whatsapp-plugin,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@flink-app/flink(>=2.0.0-alpha.134)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。它还提供命令行工具 flink-whatsapp,可以用 npx flink-whatsapp 直接运行。

@flink-app/whatsapp-plugin 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@flink-app/whatsapp-plugin 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@flink-app/whatsapp-plugin 可以商用吗?

@flink-app/whatsapp-plugin 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@flink-app/whatsapp-plugin 的下载量有多少?

根据 npm 官方下载统计,@flink-app/whatsapp-plugin 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,167 次,日均约 72 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@flink-app/whatsapp-plugin 还在维护吗?

最新版本 2.0.0-alpha.134 发布于 2026/11/07(8 天前);至今共发布 61 个版本,其中过去 12 个月发布了 61 个;首次发布于 2026/03/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。