Katika somo hili utajifunza jinsi ya kutuma sms kwa kutumia PHP. unaweza kutuma na kupokea sms kwa kutumia PHP ila katika somo hili tutajifunza tu jinsi ya kutuma sms. Kitu cha msingi unachotakiwa kukijuwa ni kuwa kutuma sms ni gharama kuliko kutuma email. Kwa kuwa kutuma sms utahitajika kuwa na API pamoja na TOKEN.
Kwa nini tunahitaji kutuma sms
-
Kwa ajili ya kuwataarifu na kuwakumbusha wateja
-
Kwa ajili ya kutuma OTP
-
Kwa ajili ya kutangaza biashara yako
-
Kufanya huduma ya bulk sms
Kabla ya kuanza somo hakikisha umefanya yafuatayo:-
-
Umeshapata API na TOKEN hizi unaweza kuzipata kwa kujisajili kwenye pltform zinazofanya huduma hii. Kuna platform nyingi ikiwemo twilio ambayo ni maarufu sana. Katika somo hili tutatumia sinch unaweza kujiunga kupitia sinch.com utaanza na Free account. Baada ya kujisajili utanunua namba ya kutumia. Kisha utapewa token na Api baada ya hapo njoo tuendelee na somo.
-
Hakikisha unatumia PHP version ya 7.4.3 ama zaidi ya hapo.
-
Hakukuwa server yako inatumia cURL
Baada ya kukamilisha mahitaji hayo utakuwa tayari kuendelea pamoja nami. Kumbuka utakughatimu kiasi cha pesa kukamilisha setting hizo kama kupata namba, API na token.
Utumaji wa sms kutoka kwenye web
Kuna njia mbili nitakwenda kuzifundisha hapa za kutuma sms kupitia web. Njia ya kwanza ni kwa kutumia html anchor kwenye link ambayobinafunguwa sms app. Njia hii itatumia sms kwa kupitia simu yako mwenyewe. Njia hii haina gharama za ziada, yenyewe inatumia bando lako la kawaida. Wala pia haihitaji kujisajili kwenye platform nyinginezo za kupata API na TOKEN.
Njia ya pili ni kwa kutumia cURL ambapo tutakwenda kutumia sinch platform. Njia hii ndio itahitaji API na TOKEN. Njia hiibjna gharama na inatumia sms moja kwa moja kwenye website na sio kupitia sms app.
Kwa kutumia html anchor tag.
Hapa kwanza tutatengeneza html form ya kuandika ujumbe wetu. Kisha tutaweka ukurasa wa kutumia ambapo mtu atabofya batani ya kutuma. Batani hiyo itakuwa na anchor tag. Anchor tag ni tag hii itakuwa na attribute kama sms ili kuweza kutuma sms pia itakuwa na body ambapo hukaa ujumbe.
-
sms.html
Hii ni html form ambayo itakuwa na input mbili tu ambazo ni namba ya simu, na body ambapo utaweza kuandika sms. Kwenye ndamba ya simu endapo zitakuwa nyingi utatengenisha kwa alama ya (;)
sms
Phone Number
Message Body
sms.php
Hapa kutakuwa na code za php ambazo zitachukuwa namba ya simu na ujumbe na kuziingiza kwenye anchor attribute. Kisha mtu akibofta neno tuma app ya sms itafunguka ikiwa na ujumbe pamoja na namba za siku. Unachotakiwa ni kutuma kawaida.
$phone_number = $_POST['phone'];
$sms_body = $_POST['body'];
?>
sms
Kwa kutumia cURL
Hapa sasa ndipo tunakwenda kutumia API, NAMBA, pamoja na PLAN ID na TOKEN. Vitu vyote hivi utavipata kwenye sinch.com kwenye dashboard yako.tutatumia fomu yetu ya hapo mwanzo kuandika ujumbe wetu pamoja na namba. Kama zipo namba zaidi ya moja tenganisha kwa alama hii ;
sms
Phone Number
Message Body
Sasa kwenye ukurasa wa sms.php utaweka code zako za cURL. Code hizi utaweza pia kuzipata kwenye dashboard yako. Ijapokuwa zitakuwa na utofauti na hizi, tutakazotumia hapa kutokana na uhitaji wa somo letu.
sms.php
//namba ya anayetumia kutoka kwenye html form
$namba_ya_mpokeaji_sms = $_POST['phone'];
//ujumbe wa sms kutoka kwenye html form
$meseji_inayotumwa = $_POST['body'];
//service id utaipata kwenye dashboard yako
$service_plan_id = "b39a36a479854b3c877ddeb0f28aa7e5";
//tokeni utaipata kwenye dashboard
$bearer_token = "9f9f77e316a94ad3baba4df8f7d3930a";
//Namba yako itakayotuma sms. Namba utanunu kwenye dashboard yako
$namba_ya_anayetuma_sms = "+12078045447";
// hapa utaangalia kama namba ni nyingi hivyo kuzitenganisha kwa alama ya ;
if(stristr($namba_ya_mpokeaji_sms, ',')){
$namba_ya_mpokeaji_sms = explode(',', $namba_ya_mpokeaji_sms);
}else{
$namba_ya_mpokeaji_sms = [$namba_ya_mpokeaji_sms];
}
// kuandaa taarifa za kutuma sms kwenye json
//json ni moja kati ya lugha za kikompyuta zinazotumika kusafirisha taarifa. ligha nyingine ni xml.
$ujumbe = [
'to' => array_values($namba_ya_mpokeaji_sms),
'from' => $namba_ya_anayetuma_sms,
'body' => $meseji_inayotumwa
];
$data = json_encode($ujumbe);
$ch = curl_init("https://us.sms.api.sinch.com/xms/v1/$service_plan_id/batches");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BEARER);
curl_setopt($ch, CURLOPT_XOAUTH2_BEARER, $bearer_token);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//kupata matokeo ya code zako
$result = curl_exec($ch);
//angalia kama ujumbe umetumwa ama haukutumwa
if(curl_errno($ch)) {
//ikiwa haukutumwa iseme "jaibu tena"
echo "jaribu tena";
} else {
//ikiwa umetuwa iseme "ujumbe umetumwa kikamilifu
echo "ujumbe umetumwa kikamilifu";
}
//kufunga curl
curl_close($ch);
Mpaka kufikia hapa umeweza kutuma sms kwa kutumia PHP. kupunguza ghara ma za huduma hii unaweza kujaribu platform mbalimbali kulinganisha gharama zao. Kwa mfano twilio ni moja ya platform ambazo zinashikilia ukukani katika kutoa hudma hizi.
Mwisho:
Tukutane somo linalofuata tutajifunza kuhusu cron job na jinsi ambavyo hufanya kazi. Nini faida zake. Na je kuna hasara yeyote ya kuitumia