UNPKG

@great-detail/whatsapp

Version:

SDK for interfacing with WhatsApp Business Platform in Typescript or Node.js using the Cloud API, hosted by Meta.

3 lines (2 loc) 2.27 kB
#!/usr/bin/env node import{a as d}from"./chunk-AWYN7PSQ.js";import{program as t}from"commander";import c from"get-stdin";var s=process.env.WHATSAPP_ACCESS_TOKEN,m=process.env.WHATSAPP_PHONE_NUMBER_ID,a=new d;t.name("whatsapp").description("WhatsApp SDK CLI");var i=t.command("media").description("Media");i.command("download").description("Download Media").argument("<MEDIA_URL>","Media URL").requiredOption("--access-token <ACCESS_TOKEN>","WhatsApp Access Token",s).action(async e=>{let n=await(await a.media.download(e)).arrayBuffer(),r=Buffer.from(n);process.stdout.write(r)});i.command("delete").description("Delete Media").argument("<MEDIA_ID>","Media ID").option("--phone-number-id <PHONE_NUMBER_ID>","From Phone Number ID",m).requiredOption("--access-token <ACCESS_TOKEN>","WhatsApp Access Token",s).action(async(e,o)=>{let n=await a.media.delete({mediaID:e,phoneNumberID:o.phoneNumberId});console.log(await n.json())});i.command("get-url").description("Get Media URL").argument("<MEDIA_ID>","Media ID").option("--phone-number-id <PHONE_NUMBER_ID>","From Phone Number ID",m).requiredOption("--access-token <ACCESS_TOKEN>","WhatsApp Access Token",s).action(async(e,o)=>{let n=await a.media.getURL({mediaID:e,phoneNumberID:o.phoneNumberId});console.log(await n.json())});i.command("upload").description("Upload Media").option("--filename <FILENAME>","Filename").requiredOption("--mime-type <MIME_TYPE>","MIME Type").requiredOption("--phone-number-id <PHONE_NUMBER_ID>","From Phone Number ID",m).requiredOption("--access-token <ACCESS_TOKEN>","WhatsApp Access Token",s).action(async e=>{let o=await c.buffer(),n=new Blob([o],{type:e.mimeType}),r=await a.media.upload({file:n,phoneNumberID:e.phoneNumberId,mimeType:e.mimeType,filename:e.filename});console.log(await r.json())});var p=t.command("message").description("Message");p.command("text").description("Send a Text message").argument("<RECIPIENT>","Message recipient Phone Number or Phone Number ID").requiredOption("--body <BODY>","Message body").option("--preview-url","Enable URL previewing for the message").action(async(e,o)=>{let n=await a.message.createMessage({to:e,phoneNumberID:o.phoneNumberId,type:"text",text:{body:o.body,preview_url:o.previewUrl}});console.log(await n.json())});t.parseAsync();