Dans un projet récent, on m'a demandé de proposer une solution pour envoyer des messages texte en tant que fonctionnalité premium sur le site d'adhésion d'un client. Ce n’était pas quelque chose que j’avais fait auparavant, mais j’ai pensé que je rassemblerais toutes les informations que j’avais rassemblées dans un simple tutoriel pour ceux qui cherchent à faire de même
L'option gratuite - E-mail
Si vous ne le saviez pas déjà, vous pouvez envoyer des messages texte par courrier électronique à la plupart des opérateurs de téléphonie mobile. Par exemple, je suis un client d’AT & T. Pour m'envoyer un message texte sans téléphone, je pouvais ouvrir Gmail et envoyer un courrier électronique à l'adresse suivante: Je recevrais le message texte exactement comme n'importe quel autre message.
Appliquer cela à PHP est assez facile en termes de code. La fonction mail fera très bien l'affaire. Si vous avez votre numéro à portée de main et que vous connaissez le fournisseur que le numéro utilise, vous pouvez rechercher le fournisseur de téléphone portable ici. Pour m'envoyer un message, c'était aussi simple que:
$ number = "999-999-9999"; $ carrier = "@ txt.att.net"; $ message = "Ceci est un texte"; $ envoyé = courrier ("$ transporteur", 'Test', $ message); echo $ envoyé? "Mail envoyé": "mail non envoyé"; // mail (adresse e-mail, objet, corps); // le sujet n'est pas requis et peut être laissé vide si désiré
Cela peut cependant créer des dilemnas. Pour ce faire, vous devez connaître à la fois le numéro ET l'opérateur de téléphonie mobile. Avec la portabilité du numéro, l'opérateur de téléphonie mobile peut changer et, à moins qu'un utilisateur ne vous avise de cette information, vous n'auriez aucun moyen de savoir que son opérateur a changé. Cette option n’était tout simplement pas envisageable pour nous, car nous avions besoin de fonctionner parfaitement, qu’ils changent de transporteur ou quoi que ce soit. Si nous avions le numéro, c’est toute l’information dont nous aurions besoin. Demander à l'utilisateur de conserver plus d'informations que de mettre à jour demandait trop.
Je pouvais voir cela comme un moyen utile d’envoyer des messages texte si je cherchais simplement à créer un service de notification pour moi-même. c'est-à-dire que si l'un de mes scripts cron quotidiens échouait, quelque chose dans ce sens. Ce n'est pas une solution fiable évolutive pour toute sorte de solution plus grande que quelques utilisateurs.
L'option payante - Passerelles SMS
Il existe de nombreuses passerelles SMS, avec différents points de tarification et API. Les passerelles SMS ne sont pas gratuites, mais elles offrent un moyen plus sûr et plus fiable de faire le travail. Je me suis souvenu d'avoir fait des recherches sur ce sujet il y a environ un an et le nom de Twilio est resté. Ce sont ceux avec qui j'ai fini d'utiliser et un tutoriel rapide et facile est présenté ci-dessous. Ils coûtent 1 centime par message texte, pas le moins cher, mais très raisonnable pour ce que nous essayons d'accomplir.
Comment envoyer un message texte avec Twilio
Vous aurez d'abord besoin d'un compte avec eux, alors allez vous inscrire. Vous recevrez un identifiant d'utilisateur et un jeton d'authentification que vous pouvez connecter aux variables appropriées ci-dessous. Ensuite, téléchargez la bibliothèque officielle Twilio PHP à partir d’ici.
// inclut la bibliothèque PHP officielle Twilio include 'Services / Twilio.php'; $ accountid = "#######"; $ token = "#######"; // déclare une nouvelle instance de la classe de services twilio $ client = new Services_Twilio ($ AccountSid, $ AuthToken); $ mynumber = "##########"; $ to = "##########"; $ body = "ceci est un message texte"; $ client-> compte-> sms_messages-> create ($ de, $ à, $ body); // voila! message envoyé
Pour toute quantité d'échelle, je vous recommandons d'utiliser une passerelle comme Twilio. Vous n'avez pas à vous soucier de garder une trace du transporteur et, d'après mon expérience, ils sont extrêmement fiables. Si vous avez des commentaires ou des suggestions, faites-le moi savoir dans les commentaires ci-dessous.