Tout ce que vous devez savoir sur l'utilisation des sous-comptes Twilio

February 24, 2021
Rédigé par
Révisé par
Liz Moy
Twilion

Cet article présente les avantages de l'utilisation de sous-comptes et explique comment envoyer des messages via des sous-comptes. Les sous-comptes vous permettent de séparer votre utilisation, vos numéros et vos paramètres tout en partageant un solde avec votre compte principal. Ils constituent un excellent moyen de segmenter votre utilisation de Twilio.  

Voici les principaux éléments abordés dans cet article :

  • Exigences techniques
  • Que sont les sous-comptes Twilio et pourquoi les utiliser ?
  • Utilisation des sous-comptes pour envoyer des messages

 

Exigences techniques

  • Un compte Twilio gratuit – Inscrivez-vous en suivant ce lien, vous recevrez un bon d'achat de 10 $ en passant à un compte payant.
  • Un numéro de téléphone Twilio.
  • Un numéro de téléphone portable vérifié (pour recevoir les SMS).
  • Des connaissances sur l'envoi de demandes API REST. Voici quelques conseils utiles pour exécuter cURL à partir de bash ou zsh. Vous pouvez également utiliser un outil comme Postman.

Que sont les sous-comptes Twilio et pourquoi les utiliser ?

Les sous-comptes sont des conteneurs qui séparent les ressources appartenant à un projet Twilio (parent). Prenons l'exemple de l'entreprise fictive Owlie Notifications. Owlie Notifications propose une plateforme SaaS qui permet aux clients de passer des appels. Owlie Notifications compte environ 50 clients.

Owlie Notifications a deux options lors de la création d'une structure de compte Twilio :

  1. Créer un compte Twilio, lié à un identifiant appelé SID de compte, qui est unique à son compte et qui est toujours précédé de « AC ». Chaque fois qu'Owlie Notifications effectue une demande d'API, elle utilise le SID de ce compte dans sa demande d'API. Par exemple, imaginons que l'identifiant SID de compte est AC123.
  2. Créer un compte Twilio (SID de compte = AC123, c'est-à-dire le compte parent) de la même manière que pour l'option 1, mais créer également un sous-compte pour chacun des 50 clients (50 sous-comptes). Chacun des 50 sous-comptes obtient son propre SID de compte unique. Ainsi, lorsque Owlie Notifications effectue une demande d'API pour un client, elle utilise le SID de compte du sous-compte approprié au lieu du SID de compte du compte parent.

Voici pourquoi l'option 2 est le choix idéal.

Principaux avantages des sous-comptes

Vous pouvez segmenter le processus de facturation 

Si Owlie Notifications choisit de ne pas utiliser de sous-comptes, elle devra réaliser le suivi de l'utilisation de chaque client elle-même, ce qui représente beaucoup de travail et comporte des risques d'erreurs. Étant donné que les sous-comptes agissent comme des conteneurs, vous pouvez utiliser l'API Usage de Twilio pour obtenir des données de facturation spécifiques d'un sous-compte, réduisant ainsi la logique métier nécessaire pour mettre en œuvre le suivi individuel des clients.

Ils permettent le provisionnement des ressources

Les sous-comptes permettent d'ajouter des ressources (telles que des numéros de téléphone) au sous-compte spécifique. Il faut savoir que la plupart des ressources ne peuvent appartenir qu'à un seul sous-compte à la fois. Cela peut être délicat si vous déplacez constamment des numéros d'un compte à l'autre. Par exemple, vous devrez gérer cette logique si vous fermez un sous-compte mais souhaitez conserver le numéro de téléphone. Heureusement, Twilio vous permet de déplacer des numéros de téléphone d'un compte à l'autre.

Ils offrent un contrôle supplémentaire sur plusieurs comptes du même projet : avec les sous-comptes, vous avez la possibilité de suspendre, de fermer et de réactiver les sous-comptes en fonction des besoins de vos clients.

Considérations à prendre en compte avant la migration vers des sous-comptes

Pour les clients qui utilisent Twilio pour envoyer des messages, Twilio vous aidera à gérer les opt-outs de vos clients, par exemple lorsqu'un utilisateur final répond STOP à un message. Twilio conserve cette liste d'opt-out au niveau du compte.

Cela signifie que si un utilisateur final a répondu STOP à un numéro de téléphone et que ce numéro de téléphone est déplacé d'un projet vers un sous-compte, qui a un SID de compte unique, le mappage de l'opt-out est interrompu. Si vous n'avez pas effectué le suivi des opt-outs, commencez dès maintenant pour vous assurer que votre liste des abonnés est à jour.

Utilisation des sous-comptes pour envoyer un message

Vous vous demandez peut-être : « Et si je n'utilise pas déjà de sous-comptes ? La migration va-t-elle être difficile ? »

Imaginez qu'Owlie Notifications utilise un seul compte pour ses 50 clients. Certains de ses clients souhaitent envoyer des SMS. Vous trouverez ci-dessous les étapes qu'Owlie Notifications devra probablement suivre :

Vous utiliserez l'API REST des sous-comptes pour le faire par programmation, mais vous pouvez choisir d'utiliser les librairies d'aide côté serveur si vous préférez.

Tout d'abord, connectez-vous à votre console Twilio. Les valeurs Account SID (SID de compte) et Auth Token (token d'authentification) de votre compte s'affichent dans le tableau de bord :

Account SID (SID de compte) et Auth Token (token d'authentification) Twilio dans la console

Pour les exemples suivants, vous utiliserez le SID de compte et le token d'authentification du compte Twilio que vous venez de créer ou de copier. N'oubliez pas de les remplacer dans tous les espaces réservés ci-dessous.

Créer un sous-compte

Continuons avec un client Owlie Notifications (Falcon Flights) et créons un sous-compte pour lui.

Demande

Depuis votre terminal ou l'invite de commande, exécutez la commande suivante pour effectuer la demande, en prenant soin de remplacer les valeurs d'espace réservé par le SID de compte et le token d'authentification de votre compte parent.

curl -X POST https://api.twilio.com/2010-04-01/Accounts.json \
--data-urlencode "FriendlyName=FalconFlights
" \
-u <INSERT YOUR PARENT ACCOUNT SID>:<INSERT YOUR PARENT AUTH TOKEN>

Réponse

Après l'exécution de la commande, vous recevrez une réponse similaire à ce qui suit :

{
   "status": "active",
   "date_updated": "Wed, 17 Feb 2021 15:12:01 +0000",
   "auth_token": "ACxxxxx",
   "friendly_name": "FalconFlights",
   "owner_account_sid": "ACxxxx",
   "uri": "/2010-04-01/Accounts/ACxxx.json",
   "sid": "ACxxx
",
   "date_created": "Wed, 17 Feb 2021 15:12:01 +0000",
   "type": "Full",
   "subresource_uris": {
...
   }
}

Cette réponse comprend quelques informations importantes.

Il existe un nouveau compte nommé FalconFlights qui possède ses propres SID de compte et token d'authentification.

owner_account_sid doit correspondre au SID de compte (Owlie Notifications) de votre projet (parent).

Vous devez effectuer le suivi du SID de compte et du token d'authentification du sous-compte, car vous en aurez besoin ultérieurement.

Transférer un numéro de téléphone

Nous avons mentionné le cas où vous auriez besoin de transférer un numéro de téléphone. Voici comment procéder. Si vous n'avez pas de numéro de téléphone Twilio, vous pouvez en acheter un via la console Twilio ou l'API REST.

Pour commencer à transférer votre numéro de téléphone Twilio entre votre compte parent et un sous-compte, accédez à la section Active Numbers (Numéros actifs) de la console. Cliquez sur un numéro pour afficher une vue avec les options de configuration.

Vous trouverez ici le SID de votre numéro de téléphone (PNxxx).

Recherche d'un identifiant de numéro de téléphone dans Twilio

Demande

Il est important de veiller à utiliser le SID du compte parent dans vos en-têtes, car le compte parent possède le numéro de téléphone.

Dans le terminal, exécutez la commande suivante :

curl -X POST https://api.twilio.com/2010-04-01/Accounts/<INSERT PARENT ACCOUNT SID>/IncomingPhoneNumbers/<INSERT PHONE NUMBER SID>.json \
--data-urlencode "AccountSid=<INSERT SUBACCOUNT SID>" \
-u <INSERT YOUR PARENT ACCOUNT SID>:<INSERT YOUR PARENT AUTH TOKEN>

Remarque : lorsque vous déplacez des numéros de téléphone vers un autre compte, les URL Voice et SMS sont conservées.

Réponse

{
    "sid": "PNxxx",
    "account_sid": "ACxxx",
    "friendly_name": "(415) 874-0103",
    "phone_number": "+14158740103",
    "voice_url": "https://demo.twilio.com/welcome/voice/",
    "voice_method": "POST",
    "voice_fallback_url": null,
    "voice_fallback_method": "POST",
    "voice_caller_id_lookup": false,
    "date_created": "Wed, 17 Feb 2021 15:17:28 +0000",
    "date_updated": "Wed, 17 Feb 2021 15:23:39 +0000",
    "sms_url": "https://demo.twilio.com/welcome/sms/reply",
    "sms_method": "POST",
    "sms_fallback_url": "",
    "sms_fallback_method": "POST",
    "address_requirements": "none",
    "beta": false,
    "capabilities": {
        "voice": true,
        "sms": true,
        "mms": true,
        "fax": true
    },
    "voice_receive_mode": "voice",
    "status_callback": "",
    "status_callback_method": "POST",
    "api_version": "2010-04-01",
    "voice_application_sid": null,
    "sms_application_sid": "",
    "origin": "twilio",
    "trunk_sid": null,
    "emergency_status": "Inactive",
    "emergency_address_sid": null,
    "address_sid": null,
    "identity_sid": null,
    "bundle_sid": null,
    "uri": "/2010-04-01/Accounts/AC1bcc67e32e161e04aaacc159b2e86601/IncomingPhoneNumbers/PNd7c52583c2ffabfe2a05a165e48e3e68.json",
    "status": "in-use"
}

Créer un service de messagerie

Créez un service de messagerie dans votre nouveau sous-compte. Un service de messagerie est une ressource qui peut servir de conteneur de vos numéros de téléphone et fournit un logiciel qui vous facilite la vie lorsque vous envoyez des messages à grande échelle.

Pour cette demande, vous utiliserez le SID de compte et le token d'authentification associés au sous-compte.

Demande

curl -X POST https://messaging.twilio.com/v1/Services \
--data-urlencode "FriendlyName=falconFlightNotifications" \
-u <INSERT YOUR SUBACCOUNT SID>:<INSERT YOUR SUBACCOUNT AUTH TOKEN>

Réponse

La réponse vous fournira un SID de service de messagerie (MGxxxx). Vous en aurez besoin dans les étapes suivantes, gardez-le donc à portée de main.

Vous pouvez voir différents attributs dans votre objet de réponse. Si vous souhaitez en savoir plus sur toutes les fonctionnalités d'un service de messagerie, consultez la documentation du service de messagerie.

{
   "fallback_method": "POST",
   "fallback_to_long_code": true,
   "date_updated": "2021-02-17T15:28:03Z",
   "synchronous_validation": false,
   "sticky_sender": true,
   "inbound_method": "POST",
   "friendly_name": "falconFlightNotifications",
   "mms_converter": true,
   "validity_period": 14400,
   "account_sid": "ACxxx",
   "fallback_url": null,
   "inbound_request_url": null,
   "url": "https://messaging.twilio.com/v1/Services/MGa91155a0d582afdde110a606465d1daa",
   "sid": "MGxxxx",
   "date_created": "2021-02-17T15:28:03Z",
   "smart_encoding": true,
   "scan_message_content": "inherit",
   "area_code_geomatch": true,
   "status_callback": null,
   "links": {
      ...
   }
}

Ajouter un numéro de téléphone au service de messagerie

Maintenant que vous disposez d'un service de messagerie, vous pouvez utiliser l'API Services pour ajouter votre numéro de téléphone à votre service de messagerie.

Demande

curl -X POST https://messaging.twilio.com/v1/Services/<INSERT YOUR MESSAGING SERVICE SID/PhoneNumbers \
--data-urlencode "PhoneNumberSid=<INSERT PHONE NUMBER SID>" \
-u <INSERT YOUR SUBACCOUNT SID>:<INSERT YOUR SUBACCOUNT AUTH TOKEN>

Réponse

Vous avez maintenant ajouté le numéro de téléphone à votre service de messagerie.

{
   "phone_number": "+14158740103",
   "date_updated": "2021-02-17T15:30:47Z",
   "capabilities": [
       "MMS",
       "SMS",
       "Voice"
   ],
   "account_sid": "AC1bcc67e32e161e04aaacc159b2e86601",
   "url": "https://messaging.twilio.com/v1/Services/MGxxx/PhoneNumbers/PNxxx",
   "country_code": "US",
   "sid": "PNxxxx",
   "date_created": "2021-02-17T15:30:47Z",
   "service_sid": "MGxxxx"
}

Envoyer un message

Maintenant que vous disposez d'un nouveau sous-compte et d'un service de messagerie avec un numéro de téléphone, envoyez un message !

Pour envoyer un message via le service de messagerie, utilisez le SID du service de messagerie (MGxxx) dans votre demande.

Assurez-vous que le numéro de téléphone To est vérifié. Si votre numéro n'est pas vérifié, vous pouvez ajouter un numéro de téléphone vérifié via la console Twilio.

Demande

curl -X POST https://api.twilio.com/2010-04-01/Accounts/<INSERT YOUR SUBACCOUNT SID>/Messages.json \
--data-urlencode "Body=Hi there" \
--data-urlencode "From=<INSERT YOUR MESSAGING SERVICE SID>
" \
--data-urlencode "To=<INSERT YOUR PHONE NUMBER E.164 FORMAT>" \
-u <INSERT YOUR SUBACCOUNT SID>:<INSERT YOUR SUBACCOUNT AUTH TOKEN>
{
   "sid": "SMb319786dcd44433b905d0e8acd2b33f3",
   "date_created": "Wed, 17 Feb 2021 15:39:56 +0000",
   "date_updated": "Wed, 17 Feb 2021 15:39:56 +0000",
   "date_sent": null,
   "account_sid": "ACxxx",
   "to": "+12083186206",
   "from": null,
   "messaging_service_sid": "MGxxx",
   "body": "Hi there",
   "status": "accepted",
   "num_segments": "0",
   "num_media": "0",
   "direction": "outbound-api",
   "api_version": "2010-04-01",
   "price": null,
   "price_unit": null,
   "error_code": null,
   "error_message": null,
   "uri": "/2010-04-01/Accounts/ACxxx/Messages/SMb319786dcd44433b905d0e8acd2b33f3.json",
   "subresource_uris": {
       "media": "/2010-04-01/Accounts/ACxxx/Messages/SMb319786dcd44433b905d0e8acd2b33f3/Media.json"
   }
}

Une fois l'opération réussie, vous devriez recevoir un texte similaire à ce qui suit :

Démonstration textuelle à partir d'un sous-compte

Parfait, le projet a fonctionné !

Conclusion : les sous-comptes sont puissants

Résumons. Vous avez :

  1. Créé un sous-compte
  2. Transféré un numéro de téléphone de votre compte parent vers votre sous-compte
  3. Créé un service de messagerie dans votre sous-compte
  4. Ajouté votre numéro de téléphone au service de messagerie
  5. Envoyé un message via votre service de messagerie dans votre sous-compte

Nous espérons que vous réalisez la puissance des sous-comptes ! Cet article n'est qu'un aperçu de nos services. Les articles suivants pourraient vous intéresser :

Josh est Senior Solutions Engineer chez Twilio. Son rôle consiste à aider nos partenaires éditeurs de logiciels indépendants (ISV) à construire des architectures évolutives et des activités commerciales sur Twilio. Vous pouvez le contacter à l'adresse jsiverson@twilio.com.