Sådan sender du SMS-beskeder med PHP - En trin for trin guide
I dette blogindlæg vil jeg gerne vise jer, hvordan I kan sende SMS-beskeder ved hjælp af PHP.
Før vi begynder, er det vigtigt, at I har en grundlæggende forståelse for PHP samt en GatewayAPI-konto med kredit på kontoen.
Når I har oprettet en konto og har fået adgang til jeres dashboard, kan I se kodeeksemplerne på forsiden af dashboardet.
Vælg PHP-eksemplet, kopier det, og indsæt det i jeres foretrukne editor. Personligt foretrækker jeg Visual Studio Code, men I kan bruge hvilken som helst editor, som I foretrækker.
Efter I har indsat koden, vil den se nogenlunde sådan ud:
Gennemgang af koden trin for trin
Jeg vil i dette afsnit gennemgå hvert trin i koden, så I forstår, hvad den gør, og hvordan I kan tilpasse den til jeres specifikke behov. Hvis I synes, det virker lige til, kan I springe til afsnittet, hvor jeg eksekverer scriptet.
I den første linje starter vi vores PHP-fil. I den tredje linje har vi en variabel, der indeholder URL’en til vores endpoint for at sende SMS-beskeder. Denne variabel skal I ikke ændre ved. I den fjerde linje har vi jeres API-token, som bruges til at identificere jer og jeres konto.
I koden har vi også detaljer om beskedens indhold. Vi har “recipients” (modtagere), som er telefonnumrene, beskeden skal sendes til. I eksemplet bruger vi nogle testnumre, men I kan indsætte op til 10.000 forskellige modtagere her.
Først skal I indsætte jeres landekode uden nuller eller plustegn foran. Fx bruger jeg “45” for Danmark. Derefter indsætter I jeres eget nummer.
I den næste linje har vi et JSON-objekt, som er objektet, der sender information til vores server om, hvordan SMS’en skal sendes. Først har vi “sender”. Dette er Sender ID’et, som bliver vist på modtagerens telefon. For eksempel, hvis I modtager en SMS fra jeres bank, vil bankens navn ofte være afsenderen. I eksemplet står der automatisk “ExampleSMS”, men I kan skrive jeres eget navn eller det ønskede Sender ID.
“Message” er selvfølgelig indholdet af SMS’en. I eksemplet skriver jeg bare “Hello world”. Bemærk, at hvis I ønsker at inkludere emojis eller specialtegn, kræver det nogle ekstra trin, hvilket I kan finde flere oplysninger om i vores dokumentation.
I næste linje lader vi “recipients” stå tom, fordi vi udfylder det i den efterfølgende linje, hvor vi anvender en for-løkke, som tager hver modtager og tilføjer dem til vores modtager-array.
cURL
Nu er vores JSON-objekt klar til at blive sendt til serveren. For at gøre dette bruger vi cURL-biblioteket, der er indbygget i PHP. Vi starter med at initialisere vores cURL-objekt ved hjælp af “curl_init()” og gemmer det i variablen “$ch”. Derefter opsætter vi nogle parametre for vores cURL-objekt ved hjælp af “curl_setopt()”. Vi angiver URL’en, hvor anmodningen skal sendes til, sætter “Content-Type” til “application/JSON” for at fortælle serveren, at vi sender et JSON-objekt, og bruger vores API-token som brugernavn og intet kodeord.
Efter opsætningen af cURL-objektet er vi klar til at udføre selve anmodningen ved at kalde “curl_exec($ch)”. Dette vil sende HTTPS-anmodningen med de angivne parametre og gemme svaret fra serveren i variablen “$result”. Derefter lukker vi cURL-objektet med “curl_close($ch)”.
For at se svaret fra serveren udskriver vi “$result” ved hjælp af “print($result)”. Hvis alt er gået som planlagt, vil I kunne se serverens svar i jeres output.
Desuden afkoder vi JSON-objektet for at få adgang til specifikke oplysninger ved hjælp af “json_decode($result, true)”. I eksemplet udskriver vi ID’er fra JSON-objektet ved hjælp af “print_r($response[‘ids’])”. Dette ID kan bruges som reference, hvis I har brug for support eller lignende.
Eksekvering af PHP-scriptet
Nu er vores PHP-script færdigt, og vi kan eksekvere det. I kan køre scriptet på den måde I har lyst. Jeg foretrækker at bruge terminalen på min pc.
Først skal I navigere til den mappe, hvor jeres fil er placeret, og derefter kan I køre scriptet ved at skrive “php sms.php” i terminalen.
Når scriptet er blevet eksekveret, skulle I gerne modtage en SMS på jeres telefon.
Screenshot fra min terminal hvor scriptet er kørt
Det svar, I modtager, indeholder nogle vigtige oplysninger. Først og fremmest er ID’er jeres “message ID”, som er identifikationen for den besked, I lige har sendt. Dette ID kan bruges i vores system, og I kan også bruge det som reference, hvis I har brug for support eller ønsker at spore beskeden.
“Usage” angiver antallet af beskeder, I har sendt, og til hvilke lande. For eksempel betyder “DK: 1”, at der er sendt én besked til Danmark. “Currency” viser valutaen, der er brugt, og prisen viser den specifikke omkostning for beskeden.
Afsluttende bemærkninger
Her til sidst vil jeg gerne dele et par ting, som I skal være opmærksomme på, når I sender SMS-beskeder via et SMS API, såsom dem vi tilbyder.
For det første har “sender”-feltet nogle begrænsninger. Undgå at bruge specialtegn eller symboler, da dette kan resultere i, at beskeden ikke kan sendes korrekt, eller at Sender ID’et bliver overskrevet.
Der er også en begrænsning på 11 tegn (alfanumerisk), eller 15 tal (numerisk), for Sender ID’er, så sørg for at holde det på eller under denne længde.
Hvis I vil inkludere links i jeres beskeder, skal I først gennemgå whitelisting-processen på jeres GatewayAPI-profil. Det tager som regel ikke mere end en arbejdsdag at få godkendt et link, men sørg alligevel for at være ude i god tid inden den planlagte afsendelse.
En sidste ting, I skal være opmærksomme på, er at sikre jer, at kodningen af jeres SMS eller PHP-fil er indstillet til UTF-8. Dette er normalt standardindstillingen i de fleste systemer, men for Windows-brugere kan der være situationer, hvor PHP-scriptet er indstillet til en anden kodning. Det er vigtigt at sikre jer, at begge er i samme kodning for at undgå problemer.
Det, jeg har vist jer i dag, er blot de grundlæggende trin for at sende en SMS-besked. GatewayAPI har meget mere at byde på, og I kan læse mere om det i vores dokumentation.
I kan også besøge vores YouTube kanal, hvor vi gennemgår, hvordan I sender beskeder via PHP på præcist samme fremgangsmåde som i dette blogindlæg.
Derudover kan I inde på GitHub finde et komplet PHP bibliotek til integration med GatewayAPI.
Tak for at I læste med!
Om forfatteren
Oliver fokuserer på integrationer og er manden, du skal gå til, hvis du har brug for en integration med dit foretrukne system. Når han ikke arbejder på GatewayAPI, er han en ivrig studerende af AI og Deep Learning. Oliver nyder generelt bare at arbejde med kode, uanset om det er AI eller noget mere jordnært, såsom GUI eller backend-software.