TypeScript SDK
Client resmi untuk API publik Wapedia (/v1): kirim pesan, usage/subscription, upload media, dan helper verifikasi signature webhook Meta.
Paket: `@wapedia/sdk` (v0.1) — sumber di repo wapedia-sdk.
Install
npm install github:rioaguspermana/wapedia-sdk
# atau
pnpm add github:rioaguspermana/wapedia-sdkSebelum publish npm registry, install dari GitHub seperti di atas. Link lokal: pnpm add ../wapedia-sdk.
Kirim pesan teks
import { Wapedia } from "@wapedia/sdk";
const client = new Wapedia({
apiKey: process.env.WAPEDIA_API_KEY!,
});
const msg = await client.messages.sendText({
to: "6281234567890",
body: "Halo dari SDK",
phoneNumberId: "YOUR_PHONE_NUMBER_ID",
});
console.log(msg.id, msg.status); // 202 → queuedTemplate & media
await client.messages.sendTemplate({
to: "6281234567890",
phoneNumberId: "YOUR_PHONE_NUMBER_ID",
template: {
name: "hello_world",
language: "id",
},
});
const uploaded = await client.media.upload({
file: new Blob([buffer], { type: "image/jpeg" }),
mimeType: "image/jpeg",
filename: "foto.jpg",
});
await client.messages.send({
to: "6281234567890",
type: "image",
phoneNumberId: "YOUR_PHONE_NUMBER_ID",
media: { id: uploaded.media_id, caption: "Foto" },
});Wallet / usage
Endpoint wallet SDK masih ada di client, tapi debit messaging W-Coin tidak aktif di model Tech Provider (MESSAGING_WALLET_ENABLED=false). Pakai subscription/usage untuk kuota fair-use:
const usage = await client.wallet.usage();
// balance / pricing / top-up: jangan andalkan untuk billing pesan saat iniVerifikasi signature Meta
Samakan dengan backend Wapedia (X-Hub-Signature-256):
import { verifyMetaSignature } from "@wapedia/sdk";
const ok = verifyMetaSignature(
req.headers["x-hub-signature-256"],
rawBody, // Buffer / Uint8Array / string mentah
process.env.META_APP_SECRET!,
);Forward event ke sistem Anda
Payload yang di-POST ke webhook_forward_url:
import { parseForwardEvent } from "@wapedia/sdk";
const event = parseForwardEvent(await req.json());
// event.event === "message.inbound"Lihat juga Webhooks.
Error
Gagal HTTP melempar WapediaError dengan status dan body (biasanya { error: string }).
Referensi lengkap
Endpoint yang belum dibungkus resource bisa dipanggil lewat client.request(method, path, …). Spesifikasi mesin: OpenAPI.