feat: WhatsApp notification helper + phase 4 migration (recheck_round, WhatsApp settings)

This commit is contained in:
2026-07-11 18:43:57 +08:00
parent e631d04aba
commit b6845f5bb5
4 changed files with 116 additions and 1 deletions
+42
View File
@@ -0,0 +1,42 @@
export async function sendWhatsAppMessage(
phoneNumber: string,
templateName: string,
parameters: string[],
phoneNumberId: string,
accessToken: string,
): Promise<void> {
const sanitized = phoneNumber.replace(/[^0-9]/g, '')
if (!sanitized) return
const body = {
messaging_product: 'whatsapp',
to: sanitized,
type: 'template',
template: {
name: templateName,
language: { code: 'en_US' },
components: [
{
type: 'body',
parameters: parameters.map(text => ({ type: 'text', text })),
},
],
},
}
const res = await fetch(
`https://graph.facebook.com/v19.0/${phoneNumberId}/messages`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${accessToken}`,
},
body: JSON.stringify(body),
}
)
if (!res.ok) {
throw new Error(`WhatsApp API error: ${res.status}`)
}
}