whatsapp logo

Automatiseer WhatsApp berichten via PHP

Al een geruime tijd ben ik bezig om alles op het gebied van website’s te onderzoeken. Hierbij houd ik mij vaak bezig met alles op het gebied van ontwikkeling, programmering en automatisering. De laatste tijd zie je steeds vaker bedrijven opduiken die gebruik maken van verificatie methodes zoals bijvoorbeeld SMS, 2FA Authenticatie maar ook de tegenwoordig ook WhatsApp. Daarom ben ik op onderzoek uitgegaan naar WhatsApp en hoe je hiermee berichten zou kunnen versturen via enkele PHP API’s.

Soorten WhatsApp berichten API’s

WhatsApp API telefoon nummer Providers

Er zijn verschillende soorten WhatsApp API providers te vinden op Google, denk hierbij bijvoorbeeld aan een van de populairste en meest bekende ‘Twillio’. Twillio stelt nieuwe nummers beschikbaar zijnde als ‘provider’ van deze telefoon nummers en rekent in per bericht 0,08 eurocent. Dit bedrag wordt bepaald afhankelijk door de hoeveelheid berichten die via hun WhatsApp API worden verstuurd.

Web- WhatsApp PHP API

Naast twillio heb ik een aantal andere platformen gevonden waar je berichten kan versturen via WhatsApp. Het geval is bijna overal het zelfde dat je per bericht een bepaald bedrag betaald aan de provider. Wanneer je hier dus op grote schaal gebruik van wilt maken wordt dit vrijwel onbetaalbaar. Via Chat-Api.com kan je een telefoon koppelen met Web- WhatsApp om vervolgens via hun dienst met PHP berichten te versturen.

Het enigste nadeel hierbij is dat de telefoon verbonden moet zijn met internet en een constante verbinding moet hebben. Hier is natuurlijk een oplossing voor te bedenken zoals in het geval van Android zou je de ‘Developer Opties’ kunnen activeren via het instellingen menu. Vervolgens wanneer dit gedaan is kan in het Developer menu een optie aangezet worden dat wanneer de telefoon aan de oplaadkabel bevestigd zit, het scherm ten alle tijden aan blijft.

whatsapp php script

Blijft de verbinding tussen WhatsApp Web open?

Dit durf ik niet met zekerheid te zeggen maar ik neem aan dat de api berichten kan versturen zonder dat de telefoon geopend is. In het begin dat ik gebruik maakte van hun dienst heeft een paar keer de server niet volledig mee gewerkt en besloot ik dus om de telefoon ten alle tijden geopend te houden en verbonden aan het elektra net om standby te voorkomen.

Persoonlijk maak ik van de Chat-Api gebruik voor mijn platform www.thuiskapper.app en moet zeggen dat het tot nu toe na een aantal maanden mij redelijk bevalt. Er zitten wel maandelijkse kosten aan verbonden van 32 euro per maand, maar je kan daarin tegen 6000 berichten per dag versturen. Ook hoef je jezelf niet te verifiëren via Facebook Business Manager om een WhatsApp telefoon nummer geverifieerd te krijgen. Dit hele proces neemt via Twillio redelijk wat tijd in beslag en het bestaat zeker minimaal uit 5 stappen die voldaan moeten worden.

PHP Chat-Api.com WhatsApp Script

<?php
$telefoon = ‘0031639011166’; // Hiermee geef je aan dat de string $telefoon het 06 nummer bevat.
$datum =  date(“l jS \of F Y h:i:s A”); // Datum opmaken met de date(); functie om mee te sturen
$tekst = ‘Dit bericht is verstuurd om:’. $datum; // Hiermee stellen we $tekst in als ‘Dit bericht is verstuurd om: #DatumEnTijd’

$data = [ // array openen met naam $data
    ‘phone’ => $telefoon, // Hier zetten we in de array op sleutel waarde ‘phone’ het telefoonnummer.
    ‘body’ => $tekst, // De ‘body’ in dit geval komt de tekst eerder opgesteld in de $tekst variabel.
]; \\ Hier sluiten we de array weer af

$json = json_encode($data); // Omzetten van de Data naar JSON zodat dit doorgestuurd kan worden via het PHP script.
$token = ‘hierjeapichattoken’; // Hier vervang je de token van je Chat-Api.com account
$instanceId = ‘hierjeinstanceid’; // En hier komt dan het instance_id

// Hiermee stellen we de link in van chat-api en zorgen wij dat het $instanceId en de $token variabels er in komen te staan.
$url = ‘https://api.chat-api.com/instance’.$instanceId.’/message?token=’.$token; 

// Om naar json te posten moeten we tijdens de post wat informatie mee sturen van een array
$options = stream_context_create([‘http’ => [ 
    ‘method’=> ‘POST’, // In dit geval vereist chat-api een POST call dus geen GET of Request.
    ‘header’=> ‘Content-type: application/json’, // We vertellen de ontvangen bij chat-api.com dat het json is.
    ‘content’ => $json] // Vervolgens sturen we de JSON mee.
]); // En sluiten de JSON Array af.

// Hier maken we de call naar de $url met de options opgegeven in $options.
$result = file_get_contents($url, false, $options);

?>

De Chat-API kan gemakkelijk in gebruik worden genomen door een QR code te scannen met de telefoon om verbinding te maken met chat-api.com. Vervolgens kan via het volgende script een call gemaakt worden naar de Chat-API service via JSON.

De token string en instance_id zijn te vinden op de website van Chat-API nadat je een telefoon nummer via hun Web-WhatsApp service hebt gekoppeld.

Het nummer moet 0031 bevatten en daarna het telefoon nummer in het geval van een 06 nummer wordt hier de 0 weg gelaten. Het nummer wordt dan dus 00316 + de 8 cijfers van het mobiele nummer. In mijn geval is dit 0031639011166 zoals te zien in het script.

Om te beginnen met het automatiseren van de berichten hebben we een lijst nodig met ’06’ nummers. In mijn geval ging ik alle adressen af op Google Maps om naar 06 nummers te zoeken met betrekking tot de zoekwoorden ‘kapper’ en ‘barber’.

In het volgende artikel leg ik uit hoe je een lijst met data vanaf excel kan importeren naar een MySQL database.

Meer lezen?

Volgende artikel

Leave a Reply