2: Berichten verzenden
Construeer de client vanuit de URL en het geheim van je gateway, en roep vervolgens een method aan per berichttype.
$wa = %WhatsApp($url, $secret)
$wa->text('31612345678@c.us', 'Hello from Phlo')
Een contact is een WhatsApp-id zoals 31612345678@c.us (individu) of een ...@g.us (groep). De demo accepteert een gewoon nummer en voegt @c.us automatisch voor je toe.
2.1: De resource methoden
| Methode | Verzendt |
|---|---|
text($to, $text) |
een tekstbericht |
image($to, $file, $text) |
een afbeelding met optionele bijschrift |
document($to, $file, $text) |
een bestand als document |
audio($to, $file) / voice($to, $file) |
audio / een spraaknotitie |
location($to, $lat, $lon, $text) |
een locatiepin |
poll($to, $name, $options, $multi) |
een peiling |
reaction($msg, $emoji) |
een emoji-reactie |
read($chat) |
markeert een chat als gelezen |
status() / health() / qr() |
status van de gateway en de inlog QR |
Media-methoden nemen een Phlo file object. Een geüpload bestand komt al als een file in de payload aan, dus je kunt het direct doorgeven:
route both POST send image {
$wa = %WhatsApp($url, $secret)
$wa->image($this->contact(%req->to), %req->image, (string)%req->caption)
}2.2: Verzendingen kunnen mislukken; verwacht het.
Elke oproep gaat via het netwerk naar de gateway, die offline of niet verbonden kan zijn. Wrap verzendt zodat een fout een duidelijke boodschap voor de gebruiker wordt in plaats van een foutpagina. De demo retourneert een toast met de fout van de gateway bij een mislukking en een succes-toast in andere gevallen.