Dela via


Självstudie: Signera och göra begäranden med Postman

I den här självstudien konfigurerar och använder du Postman för att göra en begäran mot Azure Communication Services med hjälp av HTTP. I slutet av den här självstudien skickar du ett SMS-meddelande (Short Message Service) med hjälp av Communication Services och Postman. Du kan sedan använda Postman för att utforska andra API:er i Communication Services.

I den här tutorialen lär du dig följande:

  • Ladda ned Postman.
  • Konfigurera Postman för att signera HTTP-begäranden.
  • Gör en begäran mot SMS-API:et för Communication Services för att skicka ett meddelande.

Prerequisites

  • Ett Azure-konto med en aktiv prenumeration. Om du inte har en Azure-prenumeration kan du skapa ett konto kostnadsfritt. Det kostnadsfria kontot ger dig 200 USD i Azure-krediter för att prova valfri kombination av tjänster.
  • En aktiv Communication Services-resurs och anslutningssträng. Om du inte har någon resurs kan du läsa Skapa en Communication Services-resurs.
  • Ett kommunikationstjänsttelefonnummer som kan skicka SMS. Information om hur du hämtar ett telefonnummer finns i Skaffa ett telefonnummer.

Ladda ned och installera Postman

Postman är ett skrivbordsprogram som kan göra API-begäranden mot alla HTTP-API:er. Postman används ofta för att testa och utforska API:er. I den här självstudien laddar du ned den senaste skrivbordsversionen från Postmans webbplats. Postman har versioner för Windows, Mac och Linux, så ladda ned den version som är lämplig för ditt operativsystem.

När nedladdningen är klar öppnar du programmet. På startskärmen uppmanas du att logga in eller skapa ett Postman-konto. Det är valfritt att skapa ett konto och du kan hoppa över det genom att välja Hoppa över och gå till app. När du skapar ett konto sparas inställningarna för API-begäran till Postman. Du kan sedan hämta dina begäranden på andra datorer.

Skärmbild som visar Startskärmen för Postman där du kan skapa ett konto eller gå direkt till appen.

När du har skapat ett konto eller hoppat över steget visas nu Postmans huvudskärm.

Skapa och konfigurera en Postman-samling

Postman kan organisera begäranden på många sätt. I den här självstudien skapar du en Postman-samling. Om du vill göra den här uppgiften väljer du Samlingar till vänster i programmet.

Skärmbild som visar Huvudskärmen i Postman med fliken Samlingar markerad.

Välj Skapa en ny samling för att starta processen med att skapa en samling. En ny flik öppnas i mittenområdet i Postman där du namnger samlingen. Här heter samlingen Azure Communication Services.

Skärmbild som visar Postman med en kommunikationstjänstsamling öppen och namnet på samlingen markerat.

När du har skapat och namnget samlingen är du redo att konfigurera den.

Lägga till samlingsvariabler

För att hantera autentisering och göra begäranden enklare anger du två samlingsvariabler i den nyligen skapade Communication Services-samlingen. Dessa variabler är tillgängliga för alla begäranden i din samling. Börja skapa variabler genom att välja fliken Variabler .

Skärmbild som visar Postman med fliken Communication Services-variabler.

Skapa två variabler på fliken Samlingar :

  • nyckel: Den här variabeln ska vara en av dina nycklar från sidan För kommunikationstjänster i Azure-portalen. Ett exempel är oW...A==.
  • slutpunkt: Den här variabeln ska vara dina Communication Services-slutpunkter från nyckelsidan . Se till att du tar bort det avslutande snedstrecket. Ett exempel är https://contoso.communication.azure.com.

På fliken Variabler anger du dessa värden i kolumnen Initialt värde . Välj Permanentera alla i det övre högra hörnet. När postman-fönstret är korrekt konfigurerat bör det se ut ungefär som i följande bild.

Skärmbild som visar Postman med Communication Services samlingsvariabler korrekt konfigurerade.

Mer information om variabler finns i Postman-dokumentationen.

Skapa ett prerequest-skript

Nästa steg är att skapa ett prerequest-skript i Postman. Ett prerequest-skript körs före varje begäran i Postman. Den kan modifiera eller ändra förfrågningsparametrar för dig. Du använder det här skriptet för att signera dina HTTP-begäranden så att Communication Services kan auktorisera dem. Mer information om signeringskrav finns i vår guide om autentisering.

Du skapar det här skriptet i samlingen så att det körs på alla begäranden i samlingen. Om du vill göra det här steget går du till fliken Samlingar och väljer Skript för förbegäran.

Skärmbild som visar Postman med fliken Förbegärandeskript för Communication Services-samlingar.

Nu skapar du ett prerequest-skript genom att ange det i textområdet. Det här steget kan vara enklare om du skriver det i en fullständig kodredigerare som Visual Studio Code innan du klistrar in det. I den här självstudien går vi igenom varje del av skriptprocessen. Hoppa till slutet om du vill kopiera skriptet till Postman och komma igång. Vi börjar skriva skriptet.

Skriva prerequest-skriptet

Det första steget är att skapa en UTC-sträng (Coordinated Universal Time) och lägga till den i Date HTTP-huvudet. Lagra strängen i en variabel för att använda den senare när du loggar in.

// Set the Date header to our Date as a UTC String.
const dateStr = new Date().toUTCString();
pm.request.headers.upsert({key:'Date', value: dateStr});

Därefter hashar du begärandetexten med hjälp av SHA 256 och placerar den i x-ms-content-sha256 rubriken. Postman innehåller vissa standardbibliotek för hashning och signering globalt, så du behöver inte installera dem eller kräva dem.

// 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
});

Använd den tidigare angivna slutpunktsvariabeln för att urskilja värdet för HTTP-värdhuvudet. Värdrubriken har inte angetts förrän det här skriptet har bearbetats.

// 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://','');

Med den här informationen kan du nu skapa strängen som du signerar för HTTP-begäran. Strängen består av flera tidigare skapade värden.

// 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;

Slutligen signerar du den här strängen med hjälp av din Communication Services-nyckel. Lägg sedan till den nyckeln i din begäran i Authorization rubriken.

// 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
});

Det sista prerequest-skriptet

Det sista prerequest-skriptet bör se ut ungefär så här:

// 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
});

Ange eller klistra in det här sista skriptet i textområdet på fliken Skript före begäran .

Skärmbild som visar Postman med ett meddelandetjänstsamlingsprerequest-skript angivet.

När du har angett det väljer du Ctrl +S eller väljer Spara för att spara skriptet i samlingen.

Skärmbild som visar knappen Spara postmanprerequest-skript.

Skapa en begäran i Postman

Nu när allt har konfigurerats är du redo att skapa en communication services-begäran i Postman. Kom igång genom att välja plustecknet (+) bredvid samlingen Kommunikationstjänster.

Skärmbild som visar Postman plus-tecknet (+).

Du har skapat en ny flik för din begäran i Postman och nu måste du konfigurera den. Du skickar en begäran mot SMS Send API, så se till att läsa dokumentationen för det här API:et för hjälp. Nu ska vi konfigurera Postman-begäran.

Börja genom att ange begärandetypen till POST och ange {{endpoint}}/sms?api-version=2021-03-07 i fältet url för begäran. Den här URL:en använder den tidigare skapade endpoint variabeln för att automatiskt skicka den till din Communication Services-resurs.

Skärmbild som visar en Postman-begäran med typen inställd på POST och URL:en korrekt inställd.

På fliken Body i begäran, välj raw. I listrutan till höger väljer du JSON.

Skärmbild som visar hur du ställer in begärandetexten till raw och JSON.

Du konfigurerade begäran att skicka och ta emot information i JSON-format.

I textområdet anger du en begärandetext i följande format:

{
    "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>"
        }
    ]
}

För värdet from måste du få ett telefonnummer i Kommunikationstjänstportalen, som tidigare nämnts. Ange den utan blanksteg och ett prefix för landskoden. Ett exempel är +15555551234. Din message kan vara vad du vill skicka, men Hello from Azure Communication Services är ett bra exempel. Värdet to ska vara en telefon som du har åtkomst till så att du kan ta emot SMS. Att använda din egen mobiltelefon är en bra idé.

Spara den här begäran i samlingen Kommunikationstjänster som du skapade tidigare. Det här steget säkerställer att det hämtar variablerna och förbegärandeskriptet som du skapade tidigare. Välj Spara i det övre högra hörnet av begärandeområdet.

Skärmbild som visar knappen Spara för en Postman-begäran.

Dialogrutan som visas frågar dig vad du vill anropa begäran och var du vill spara den. Du kan ge den ett namn som du vill, men se till att du väljer din Communication Services-samling i den nedre halvan av dialogrutan.

Skärmbild som visar dialogrutan Spara begäran för Postman med samlingen Kommunikationstjänster markerad.

Skicka en begäran

Nu när allt har konfigurerats kan du skicka begäran och få ett SMS på din telefon. Om du vill göra det här steget kontrollerar du att din begäran är markerad och väljer sedan Skicka.

Skärmbild som visar en Postman-begäran med knappen Skicka markerad.

Om allt gick bra ser du svaret från Communication Services, som är en 202-statuskod.

Skärmbild som visar en Postman-begäran som har skickats med statuskoden 202.

Mobiltelefonen som äger numret du angav i to värdet fick också ett SMS. Nu har du en funktionell Postman-konfiguration som kan kommunicera med Kommunikationstjänster och skicka SMS.