In een recent project werd mij gevraagd om een oplossing te bedenken om sms-berichten uit te zenden als premium-functie op de lidmaatschapssite van een klant. Dit was niet iets dat ik eerder had gedaan, maar ik dacht dat ik alle informatie die ik verzamelde zou samenvoegen in één eenvoudige tutorial voor diegenen die hetzelfde willen doen
De gratis optie - E-mail
Als je dit nog niet wist, kunnen sms-berichten daadwerkelijk via e-mail naar de meeste gsm-providers worden verzonden. Ik ben bijvoorbeeld een AT & T-klant. Om mezelf een sms-bericht te sturen zonder een telefoon, kon ik gmail openen en een e-mail sturen naar: [email protected]. Ik zou het sms-bericht ontvangen net als elk ander bericht.
Dit toepassen op PHP is eenvoudig genoeg in termen van werkelijke code. De mailfunctie zal het goed doen. Als je je nummer bij de hand hebt en de drager kent die het nummer gebruikt, kun je de gsm-provider hier opzoeken. Om een bericht naar mijzelf te sturen, was het net zo eenvoudig als:
$ number = "999-999-9999"; $ carrier = "@ txt.att.net"; $ message = "Dit is een tekst"; $ sent = mail ("[email protected] $ carrier", 'Test', $ message); echo $ verzonden? "Mail verzonden": "Mail NIET verzonden"; // mail (e-mailadres, onderwerp, lichaam); // het onderwerp is niet verplicht en kan indien gewenst leeg worden gelaten
Dit kan echter dilemnas creëren. Het vereist dat u zowel het nummer EN de gsm-carrier kent. Met nummeroverdraagbaarheid kan de mobiele-telefoonaanbieder veranderen en tenzij een gebruiker u op de hoogte brengt van deze informatie, kunt u niet weten of de vervoerder is gewijzigd. Deze optie was gewoon niet haalbaar voor ons omdat we het nodig hadden om probleemloos te werken, ongeacht of ze van drager veranderden of wat het geval ook was. Als we het nummer hadden, is dat alle informatie die we nodig zouden hebben. Om de gebruiker te vragen om meer informatie bij te houden dan dat up-to-date was, vroeg het te veel.
Ik kon zien dat dit een handige manier was om sms-berichten te verzenden als ik op zoek was naar een soort van meldingsservice voor mezelf. dwz als een van mijn dagelijkse cron-scripts tekortschoot, iets in die zin. Dit is geen schaalbare, betrouwbare oplossing voor elke oplossing die groter is dan slechts een paar gebruikers.
De betaalde optie - SMS-gateways
Er zijn tal van sms-gateways beschikbaar, met verschillende prijspunten en API's. SMS-gateways zijn niet gratis, maar ze bieden een veiligere en betrouwbaardere manier om de klus te klaren. Ik herinnerde me dat ik ongeveer een jaar geleden enig onderzoek had gedaan naar dit onderwerp en de naam Twilio bleef hangen. Ze zijn wie ik heb beëindigd en een korte en eenvoudige handleiding is hieronder. Ze kosten 1 cent per sms, niet het goedkoopste, maar zeer redelijk voor wat we probeerden te bereiken.
Hoe een sms-bericht verzenden met Twilio
Je hebt eerst een account bij hen nodig, dus meld je aan. U ontvangt een gebruikers-id en verificatietoken die u kunt aansluiten op de juiste variabelen hieronder. Download vervolgens de officiële Twilio PHP-bibliotheek van hier.
// include: de officiële Twilio PHP-bibliotheek bevat 'Services / Twilio.php'; $ accountid = "#######"; $ token = "#######"; // een nieuwe instantie van de twilio-services class $ client = new Services_Twilio ($ AccountSid, $ AuthToken) declareren; $ mijnnummer = "##########"; $ to = "##########"; $ body = "dit is een sms-bericht"; $ client-> account-> sms_messages-> create ($ from, $ to, $ body); //voila! bericht verzonden
Voor elke hoeveelheid schaal, zou ik aanraden om een gateway zoals Twilio te gebruiken. U hoeft zich geen zorgen te maken over het bijhouden van de koerier en in mijn ervaring waren ze uiterst betrouwbaar. Eventuele feedback of suggesties, laat het me weten in de reacties hieronder.