Comment valider les numéros de téléphone en PHP avec l'API Twilio Lookup

March 16, 2016
Rédigé par
Sam Agnew
Twilion

Comment valider les numéros de téléphone en PHP avec l'API Twilio Lookup

Twilio Lookup est une API REST de répertoire téléphonique que vous pouvez utiliser pour vérifier si un numéro existe (allant du numéro au format international ou au format local), pour déterminer si un téléphone peut recevoir des SMS, et même découvrir des informations sur la personne associée à ce numéro de téléphone.

Dans ce post, nous allons apprendre comment traiter les numéros valides et invalides en utilisant la librairie Twilio PHP. Que vous ayez besoin de vérifier des numéros de téléphone clients dans votre production Laravel app, ou que vous ayez juste un script basique que vous voulez exécuter pour vérifier les numéros dans une base de données locale, ce code vous permettra de vous lancer dans la validation de numéros de téléphone!

Pour commencer

Vous aurez besoin de quelques éléments préalables pour commencer à coder :

  • PHP – J’utilise la version 5.5 pour ce post
  • Composer – Cela vous aidera à gérer les dépendances
  • La librairie Twilio PHP – Ouvrez votre terminal, naviguez sur le dossier dans lequel vous voulez mettre votre code et entrez la ligne suivante pour l’installer avec Composer :
composer require twilio/sdk:4.*

récupération de account SID et Auth Token dans la console Twilio

Rechercher des numéros de téléphone valides

Jetez un œil à la page Lookup si vous voulez vous amuser avec l’API et voir quel type de data renverra une requête. Essayez d’entrer un numéro de téléphone et regardez l’objet de réponse JSON.

requête lookup et réponse JSON

Voici un extrait de code rapide pour faire une recherche de numéro de téléphone basique. Créez un fichier nommé lookup.phpet ajoutez-y ce code :

<?php
// Get the PHP helper library from twilio.com/docs/php/install
// Loads the library
require "vendor/autoload.php";

// Your Account Sid and Auth Token from twilio.com/user/account
$sid = "{{account_sid}}";
$token = "{{ auth_token }}";
$client = new Lookups_Services_Twilio($sid, $token);

// Make a call to the Lookup API
$number = $client->phone_numbers->get("15108675309");

// Print the nationally formatted phone number
echo $number->national_format . "\r\n"; // => (510) 867-5309

Ouvrez votre terminal et naviguez jusqu’au répertoire contenant lookup.php puis exécutez cette commande :

php lookup.php

Cette fonctionnalité basique est gratuite mais vous pouvez avoir plus d’informations en faisant un carrier lookup. Ils sont généralement utilisés pour déterminer si un numéro est capable de recevoir des messages SMS/MMS. Ils coûtent 0.005$ mais un compte d’essai gratuit offre 20$ de crédit, de quoi bien s’amuser avec.

Les carrier lookup nécessitent un paramètre supplémentaire.

<?php
// Get the PHP helper library from twilio.com/docs/php/install
// Loads the library
require "vendor/autoload.php";

// Your Account Sid and Auth Token from twilio.com/user/account
$sid = "{{account_sid}}";
$token = "{{ auth_token }}";
$client = new Lookups_Services_Twilio($sid, $token);

// Perform a carrier Lookup using a US country code
$number = $client->phone_numbers->get("(510) 867-5309", array("CountryCode" => "US", "Type" => "carrier"));

// Log the carrier type and name
echo $number->carrier->type . "\r\n"; // => mobile
echo $number->carrier->name; // => Sprint Spectrum, L.P.

Rechercher les numéros de téléphone invalides

Dans ce “répertoire téléphonique en ligne”, les numéros de téléphone agissent comme un ID unique. Lorsque vous essayez de rechercher un numéro qui n’existe pas, vous aurez une réponse d’erreur 404.

Dirigez-vous sur la page d’accueil Lookup à nouveau pour essayer vous-même de vérifier un numéro qui n’existe pas :

vérification lookup de numéro inexistant

Il vous faut créer une fonction qui prend un numéro de téléphone et renvoie “true” (vrai) si le numéro est valide et “false” (faux) s’il ne l’est pas. Pour ça, vous allez essayer de faire un carrier lookup et vérifier si une exception a été relevée par le code d’erreur 404.

Remplacez le code dans lookup.php par le suivant :

<?php // Get the PHP helper library from twilio.com/docs/php/install // Loads the library require "vendor/autoload.php"; // A function that takes a phone number and // returns true if the number is valid and false otherwise. function isValidNumber($number) { // Your Account Sid and Auth Token from twilio.com/user/account $sid = "{{account_sid}}"; $token = "{{ auth_token }}"; $client = new Lookups_Services_Twilio($sid, $token); // Try performing a carrier lookup and return true if successful. try { $number = $client->phone_numbers->get($number, array("CountryCode" => "US", "Type" => "carrier"));
        $number->carrier->type; // Should throw an exception if the number doesn't exist.
        return true;
    } catch (Exception $e) {
        // If a 404 exception was encountered return false.
        if($e->getStatus() == 404) {
            return false;
        } else {
            throw $e;
        }
    }
}

if (isValidNumber("19999999999")) {
    echo "Phone number is valid";
} else {
    echo "Phone number is not valid";
}

Essayez d’exécuter ce code en utilisant la commande suivante dans votre terminal, et n’oubliez pas d’insérer votre Account SID et Auth Token :

php lookup.php

Vous avez à présent une fonction que vous pouvez utiliser n’importe où dans votre code pour vérifier les numéros de téléphone.

Pour aller plus loin...

Donc, vous savez maintenant vous servir de répertoire téléphonique de l’API REST qu’est Twilio Lookup. Vous pouvez aussi vous renseigner sur les autres ressources pour apprendre comment utiliser Lookup dans d’autres langages :

  • Rechercher des numéros de téléphone en Python
  • Rechercher des numéros de téléphone en Ruby.
  • Documentation de l’API.

N'hésitez pas à me contacter si vous avez des questions, des commentaires ou si vous voulez simplement montrer ce que vous avez construit de sympa.