Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce didacticiel, vous configurez et utilisez Postman pour effectuer une requête auprès d’Azure Communication Services à l’aide de HTTP. À la fin de ce didacticiel, vous aurez réussi à envoyer un message SMS (Short Message Service) à l'aide d’Azure Communication Services et de Postman. Vous pouvez ensuite utiliser Postman pour explorer d’autres API dans Communication Services.
Dans ce tutoriel, vous allez apprendre à :
- Téléchargez Postman.
- Configurez Postman pour signer les requêtes HTTP.
- Effectuez une demande auprès de l'API SMS d’Azure Communication Services pour envoyer un message.
Prérequis
- Compte Azure avec un abonnement actif. Si vous n’avez pas d’abonnement Azure, vous pouvez créer un compte gratuitement. Le compte gratuit vous offre 200 $ en crédits Azure pour essayer n'importe quelle combinaison de services.
- Une ressource Communication Services active et la chaîne de connexion. Si vous ne disposez pas d'une ressource, consultez Créer une ressource Azure Communication Services.
- Un numéro de téléphone d’Azure Communication Services qui peut envoyer des messages SMS. Pour obtenir un numéro de téléphone, consultez Obtenir un numéro de téléphone.
Télécharger et installer Postman
Postman est une application de bureau capable d'effectuer des requêtes API sur n'importe quelle API HTTP. Postman est couramment utilisé pour tester et explorer les API. Dans ce tutoriel, vous téléchargez la dernière version de bureau à partir du site Web de Postman. Postman a des versions pour Windows, Mac et Linux, alors téléchargez la version adaptée à votre système d'exploitation.
Une fois le téléchargement terminé, ouvrez l'application. L'écran de démarrage vous requête de vous connecter ou de créer un compte Postman. La création d'un compte est facultative et vous pouvez l'ignorer en sélectionnant Ignorer et accéder à l'application. La création d'un compte enregistre vos paramètres de requête d'API sur Postman. Vous pouvez ensuite récupérer vos requêtes sur d'autres ordinateurs.
Après avoir créé un compte ou ignoré l'étape, vous voyez maintenant l'écran principal de Postman.
Créer et configurer une collection Postman
Le facteur peut organiser les requêtes de plusieurs manières. Pour les besoins de ce tutoriel, vous créez une collection Postman. Pour effectuer cette tâche, sur le côté gauche de l’application, sélectionnez Collections.
Sélectionnez Créer une nouvelle Collection pour démarrer le processus de création d’une collection. Un nouvel onglet s'ouvre dans la zone centrale de Postman où vous nommez la collection. Ici, la collection est nommée Azure Communication Services.
Après avoir créé et nommé votre collection, vous êtes prêt à la configurer.
Ajouter des variables de collection
Pour gérer l’authentification et faciliter les requêtes, vous spécifiez deux variables de collection dans la collection Communication Services nouvellement créée. Ces variables sont disponibles pour toutes les requêtes de votre collection. Pour commencer à créer des variables, sélectionnez l’onglet Variables.
Dans l’onglet Collections, créez deux variables :
- clé : cette variable doit être l’une de vos clés à partir de votre page Clé des services de communication dans le Portail Microsoft Azure. par exemple
oW...A==
. - point de terminaison : cette variable doit correspondre à vos points de terminaison d’Azure Communication Services à partir de la page Clé. Assurez-vous de supprimer la barre oblique finale. par exemple
https://contoso.communication.azure.com
.
Dans l’onglet Variables, entrez ces valeurs dans la colonne Valeur initiale. Sélectionnez Tout conserver dans le coin supérieur droit. Une fois configuré correctement, votre volet Postman devrait ressembler à l'image suivante.
Pour en savoir plus sur les variables, consultez la documentation Postman.
Créer un script de pré-requête
L’étape suivante consiste à créer un script de pré-requête dans Postman. Un script de pré-requête s'exécute avant chaque requête dans Postman. Il peut modifier ou altérer les paramètres de requête pour vous. Vous utilisez ce script pour signer vos requêtes HTTP afin que Communication Services puisse les autoriser. Pour plus d'informations sur les exigences de signature, consultez notre guide sur l'authentification.
Vous créez ce script dans la collection afin qu'il s'exécute sur n'importe quelle requête de la collection. Pour effectuer cette étape, dans l’onglet Collections, sélectionnez Script de pré-requête.
Vous créez maintenant un script de pré-requête en le saisissant dans la zone de texte. Cette étape peut être plus facile si vous l’écrivez dans un éditeur de code complet comme Visual Studio Code avant de la coller. Ce tutoriel vous guide à travers chaque partie du processus de script. Passez à la fin si vous souhaitez copier le script dans Postman et commencer. Commençons par écrire le script.
Écrire le script de pré-requête
La première étape consiste à créer une chaîne de temps universel coordonné (UTC) et à l’ajouter à l’en-tête HTTP Date
. Stockez cette chaîne dans une variable pour l'utiliser plus tard lorsque vous signez.
// Set the Date header to our Date as a UTC String.
const dateStr = new Date().toUTCString();
pm.request.headers.upsert({key:'Date', value: dateStr});
Ensuite, hachez le corps de la requête en utilisant SHA 256 et placez-le dans l’en-tête x-ms-content-sha256
. Postman inclut certaines bibliothèques standard pour le hachage et la signature à l'échelle mondiale, vous n'avez donc pas besoin de les installer ni d'en avoir besoin.
// Hash the request body by using SHA256 and encode it as Base64
const hashedBodyStr = CryptoJS.SHA256(pm.request.body.raw).toString(CryptoJS.enc.Base64)
// And add that to the header x-ms-content-sha256
pm.request.headers.upsert({
key:'x-ms-content-sha256',
value: hashedBodyStr
});
Utilisez votre variable de point de terminaison précédemment spécifiée pour discerner la valeur de l’en-tête de l’hôte HTTP. L'en-tête de l'hôte n'est pas défini avant le traitement de ce script.
// Get our previously specified endpoint variable.
const endpoint = pm.variables.get('endpoint')
// Remove the https prefix to create a suitable "Host" value.
const hostStr = endpoint.replace('https://','');
Avec ces informations, vous pouvez maintenant créer la chaîne que vous signerez pour la requête HTTP. La chaîne est composée de plusieurs valeurs créées précédemment.
// This gets the part of our URL that is after the endpoint, for example, in https://contoso.communication.azure.com/sms, it will get '/sms'.
const url = pm.request.url.toString().replace('{{endpoint}}','');
// Construct our string, which we'll sign, by using various previously created values.
const stringToSign = pm.request.method + '\n' + url + '\n' + dateStr + ';' + hostStr + ';' + hashedBodyStr;
Enfin, vous signez cette chaîne en utilisant votre clé Communication Services. Ajoutez ensuite cette clé à votre requête dans l’en-tête Authorization
.
// Decode our access key from previously created variables into bytes from Base64.
const key = CryptoJS.enc.Base64.parse(pm.variables.get('key'));
// Sign our previously calculated string with HMAC 256 and our key. Convert it to Base64.
const signature = CryptoJS.HmacSHA256(stringToSign, key).toString(CryptoJS.enc.Base64);
// Add our final signature in Base64 to the authorization header of the request.
pm.request.headers.upsert({
key:'Authorization',
value: "HMAC-SHA256 SignedHeaders=date;host;x-ms-content-sha256&Signature=" + signature
});
Le script de pré-requête final
Le script de pré-requête final devrait ressembler à cet exemple :
// Set the Date header to our Date as a UTC String.
const dateStr = new Date().toUTCString();
pm.request.headers.upsert({key:'Date', value: dateStr});
// Hash the request body by using SHA256 and encode it as Base64.
const hashedBodyStr = CryptoJS.SHA256(pm.request.body.raw).toString(CryptoJS.enc.Base64)
// And add that to the header x-ms-content-sha256.
pm.request.headers.upsert({
key:'x-ms-content-sha256',
value: hashedBodyStr
});
// Get our previously specified endpoint variable.
const endpoint = pm.variables.get('endpoint')
// Remove the https prefix to create a suitable "Host" value.
const hostStr = endpoint.replace('https://','');
// This gets the part of our URL that is after the endpoint, for example, in https://contoso.communication.azure.com/sms, it will get '/sms'.
const url = pm.request.url.toString().replace('{{endpoint}}','');
// Construct our string, which we'll sign, by using various previously created values.
const stringToSign = pm.request.method + '\n' + url + '\n' + dateStr + ';' + hostStr + ';' + hashedBodyStr;
// Decode our access key from previously created variables into bytes from Base64.
const key = CryptoJS.enc.Base64.parse(pm.variables.get('key'));
// Sign our previously calculated string with HMAC 256 and our key. Convert it to Base64.
const signature = CryptoJS.HmacSHA256(stringToSign, key).toString(CryptoJS.enc.Base64);
// Add our final signature in Base64 to the authorization header of the request.
pm.request.headers.upsert({
key:'Authorization',
value: "HMAC-SHA256 SignedHeaders=date;host;x-ms-content-sha256&Signature=" + signature
});
Saisissez ou collez ce script final dans la zone de texte de l’onglet Script de pré-requête.
Après l'avoir saisi, sélectionnez Ctrl+S ou sélectionnez Enregistrer pour enregistrer le script dans la collection.
Créer une requête dans Postman
Maintenant que tout est configuré, vous êtes prêt à créer une requête d’Azure Communication Services dans Postman. Pour commencer, sélectionnez le signe plus (+) à côté de la collection Azure Communication Services.
Vous avez créé un nouvel onglet pour votre requête dans Postman, et vous devez maintenant le configurer. Vous faites une requête auprès de l'API SMS Send, assurez-vous donc de vous référer à la documentation de cette API pour obtenir de l'aide. Configurons la requête Postman.
Pour commencer, définissez le type de requête sur POST
et saisissez {{endpoint}}/sms?api-version=2021-03-07
dans le champ URL de la requête. Cette URL utilise votre variable endpoint
précédemment créée pour l'envoyer automatiquement à votre ressource Communication Services.
Dans l’onglet Corps de la requête, sélectionnez brut. Dans la liste déroulante à droite, sélectionnez JSON.
Vous avez configuré la requête pour envoyer et recevoir des informations au format JSON.
Dans la zone de texte, saisissez un corps de requête au format suivant :
{
"from":"<Your Azure Communication Services Telephone Number>",
"message":"<The message you'd like to send>",
"smsRecipients": [
{
"to":"<The number you'd like to send the message to>"
}
]
}
Pour la valeur from
, vous devez obtenir un numéro de téléphone dans le portail d’Azure Communication Services, comme mentionné précédemment. Saisissez-le sans aucun espace et un préfixe de votre code pays. par exemple +15555551234
. Votre message
peut être ce que vous voulez, mais Hello from Azure Communication Services
est un bon exemple. La valeur to
doit être un téléphone auquel vous avez accès afin de pouvoir recevoir des messages SMS. Utiliser votre propre téléphone portable est une bonne idée.
Enregistrez cette requête dans la collection Communication Services que vous avez créée précédemment. Cette étape garantit qu'elle récupère les variables et le script de prérequête que vous avez créés précédemment. Sélectionnez Enregistrer dans le coin supérieur droit de la zone de requête.
La boîte de dialogue qui apparaît vous requête comment vous souhaitez appeler la requête et où vous souhaitez l'enregistrer. Vous pouvez lui donner le nom que vous souhaitez, mais assurez-vous de sélectionner votre collection d’Azure Communication Services dans la moitié inférieure de la boîte de dialogue.
Envoyer une demande
Maintenant que tout est configuré, vous pouvez envoyer la requête et recevoir un SMS sur votre téléphone. Pour effectuer cette étape, assurez-vous que votre requête est sélectionnée puis sélectionnez Envoyer.
Si tout s'est bien passé, vous voyez la réponse d’Azure Communication Services, qui est un code d'état 202.
Le téléphone mobile qui possède le numéro que vous avez fourni dans la valeur to
a également reçu un message SMS. Vous disposez désormais d'une configuration Postman fonctionnelle capable de communiquer avec Azure Communication Services et d'envoyer des messages SMS.