Envoyer des SMS pro à l'aide de l'ID expéditeur alphanumérique Twilio

August 06, 2015
Rédigé par
Phil Nash
Twilion

Envoyer des SMS pro à l'aide de l'ID expéditeur alphanumérique Twilio

Cela fait quelques mois que nous avons hébergé Signal (si vous l'avez manqué, n'oubliez pas que les vidéos de toutes les sessions sont disponibles en ligne) et dans ce post, je voulais passer un moment à explorer l'une des annonces que j'ai trouvé assez enthousiasmante : les expéditeurs alphanumériques. Étant basé au Royaume-Uni et voyageant souvent en Europe, je reçois régulièrement des SMS avec un nom d'entreprise comme identifiant d'expéditeur au lieu d'un numéro de téléphone. C'est génial, car je reconnais instantanément le nom de l'entreprise qui m'envoie le message au lieu de voir un message entrant provenant d'un numéro inconnu.

Dans ma boîte de réception SMS, il n'y a pas moins de 3 messages utilisant un nom commercial comme ID d'expéditeur au lieu d'un numéro de téléphone
Maintenant, je peux utiliser Twilio pour améliorer l'expérience que je fournis aux utilisateurs qui reçoivent mes SMS en envoyant des messages texte avec un expéditeur alphanumérique vers 145 pays. Dans ce post, je vais vous montrer comment.

Avertissement préalable

Avant de nous plonger dans le code, vous devez connaître quelques informations sur les expéditeurs alphanumériques. Ce style est idéal pour les messages de type alerte ou diffusion, mais pas pour les applications interactives, car les utilisateurs ne peuvent pas répondre à un expéditeur alphanumérique. Par conséquent, si vous choisissez d'utiliser un expéditeur alphanumérique, vous devrez fournir d'autres moyens aux utilisateurs de se désinscrire. Vous devez également réfléchir attentivement à l'identifiant de l'expéditeur que vous choisissez. C'est une bonne idée d'utiliser votre nom d'entreprise ou de marque, mais si vous essayez d'être trop créatif, cela peut se retourner contre vous.

Prêt à envoyer des SMS personnalisés à votre marque ? Alors allons-y.

La boîte à outils d'aujourd'hui

Je vais vous montrer comment envoyer un SMS à partir d'un ID alphanumérique à l'aide de Ruby, donc si vous voulez suivre, vous aurez besoin des éléments suivants :

Et c'est tout, alors passons à l'envoi de SMS !

Envoi de SMS

Vous avez peut-être déjà vu comment envoyer un SMS à partir d'un numéro de téléphone, mais voici un bref récapitulatif :

require 'twilio-ruby'

# Get these from your account dashboard
account_sid = YOUR_ACCOUNT_SID
auth_token = YOUR_AUTH_TOKEN
# You'll need to buy a Twilio number for this
twilio_phone_number = YOUR_TWILIO_PHONE_NUMBER
# This can be your phone number for testing purposes
recipient_phone_number = RECIPIENT_PHONE_NUMBER

# Instantiate a Twilio::REST::Client with our Account SID and Auth Token
client = Twilio::REST::Client.new(account_sid, auth_token)

# Use the client to create a message using the arguments from above
client.messages.create(
  from: twilio_phone_number,
  to:   recipient_phone_number,
  body: "Hello, this is a message from Phil"
)

Vous pouvez l'enregistrer dans un fichier et l'exécuter ou simplement le saisir directement dans irb. Dans tous les cas, cela fonctionnera. Plutôt simple, non ? Et pour envoyer un SMS à partir d'un expéditeur alphanumérique ?

require 'twilio-ruby'

account_sid = YOUR_ACCOUNT_SID
auth_token = YOUR_AUTH_TOKEN
twilio_phone_number = "Phil"
recipient_phone_number = RECIPIENT_PHONE_NUMBER

# Instantiate a Twilio::REST::Client with our Account SID and Auth Token
client = Twilio::REST::Client.new(account_sid, auth_token)

# Use the client to create a message using the arguments from above
client.messages.create(
  from: twilio_phone_number,
  to:   recipient_phone_number,
  body: "Hello, this is a message from Phil"
)

Si vous exécutez le code, vous devriez recevoir un message provenant du nom que vous utilisez et non du numéro.
Comme vous pouvez le constater, il n'y a qu'un seul changement. Nous avons remplacé le numéro de téléphone par une chaîne de texte, c'est tout.

145 pays, cela ne représente pas tous les pays

Bon, c'est aussi simple seulement si vous envoyez des SMS à l'un des 145 pays qui prennent en charge cette fonction. Si vous envoyez à plusieurs pays et que l'un d'eux, comme les États-Unis, ne prend pas en charge les expéditeurs alphanumériques, il reste encore un peu de travail à faire.

Si vous envoyez un message à l'aide d'un expéditeur alphanumérique à un numéro d'un pays qui ne le prend pas en charge, l'API Twilio renvoie une réponse HTTP 400. Le corps de la réponse contient les détails de l'erreur propres à Twilio, notamment un code d'erreur et un message d'erreur Twilio. Le code d'erreur qui représente notre problème, autrement dit l'envoi d'un SMS à partir d'un expéditeur alphanumérique vers un pays qui ne le prend pas en charge, est le code d'erreur Twilio 21612.

La réponse HTTP se manifeste dans la bibliothèque Ruby sous la forme Twilio::REST::RequestError. Nous pouvons récupérer l'exception et interroger l'erreur pour en déterminer le code et ainsi, vérifier qu'il s'agit bien de l'erreur que nous attendons (code 21612). Si c'est le cas, nous pouvons réessayer d'envoyer le message en utilisant un numéro Twilio comme expéditeur. Voici comment cela fonctionne :

require 'twilio-ruby'

account_sid = YOUR_ACCOUNT_SID
auth_token = YOUR_AUTH_TOKEN
alphanumeric_id = "Phil"
twilio_phone_number = YOUR_TWILIO_NUMBER
recipient_phone_number = RECIPIENT_PHONE_NUMBER

client = Twilio::REST::Client.new(account_sid, auth_token)
begin
  client.messages.create(
    from: alphanumeric_id,
    to:   recipient_phone_number,
    body: "Hello, this is a message from Phil"
  )
rescue Twilio::REST::RequestError => error
  if error.code == 21612
    client.messages.create(
      from: twilio_phone_number,
      to:   recipient_phone_number,
      body: "Hello, this is a message from Phil"
    )
  else
    # handle this some other way
    raise error
  end
end

Vous pouvez maintenant essayer ce script avec un numéro d'un pays qui ne prend pas en charge ces messages, comme les États-Unis, le Japon ou la Belgique. Une fois que l'API répond avec l'erreur, le script revient à l'utilisation du numéro de téléphone fourni comme expéditeur.

Si d'autres erreurs sont signalées, elles provoqueront le blocage de ce script et vous devrez les gérer de manière appropriée pour votre application.

Donner une marque à ces SMS

Vous pouvez maintenant :

  • Améliorer l'expérience utilisateur pour les alertes et les diffusions SMS en donnant une marque à votre expéditeur de SMS
  • Réussir la reprise dans les cas où le destinataire se trouve dans un pays qui n'accepte pas les expéditeurs alphanumériques

Gardez à l'esprit que l'utilisation d'un expéditeur alphanumérique ne convient pas à tous les cas d'utilisation possibles de SMS, car les destinataires ne peuvent pas répondre. De plus, dans les cas où vous pouvez utiliser cette fonction, il est important de fournir d'autres moyens aux utilisateurs de se désinscrire de ces messages.

Comme toujours, si vous avez d'autres questions sur ce sujet, laissez un commentaire ci-dessous, contactez-moi via Twitter ou envoyez-moi un e-mail.