Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku skonfigurujesz Postman i użyjesz go, aby wysłać żądanie do usług Azure Communication Services za pomocą protokołu HTTP. Po zakończeniu tego samouczka, pomyślnie wyślesz wiadomość SMS, korzystając z usług komunikacyjnych i Postman. Następnie możesz użyć narzędzia Postman do eksplorowania innych interfejsów API w usługach komunikacyjnych.
Z tego samouczka dowiesz się, jak wykonywać następujące działania:
- Pobierz narzędzie Postman.
- Skonfiguruj narzędzie Postman do podpisywania żądań HTTP.
- Wyślij żądanie do SMS API Communication Services w celu wysłania wiadomości.
Prerequisites
- Konto Azure z aktywną subskrypcją. Jeśli nie masz subskrypcji platformy Azure, możesz bezpłatnie utworzyć konto. Bezpłatne konto daje środki na korzystanie z platformy Azure w wysokości 200 USD, aby wypróbować dowolną kombinację usług.
- Aktywny zasób usług komunikacyjnych i łańcuch połączenia. Jeśli nie masz zasobu, zobacz Create a Communication Services resource (Tworzenie zasobu usług komunikacyjnych).
- Numer telefonu usług komunikacyjnych, który może wysyłać wiadomości SMS. Aby uzyskać numer telefonu, zobacz Uzyskiwanie numeru telefonu.
Pobieranie i instalowanie narzędzia Postman
Postman to aplikacja desktopowa, która może wykonywać żądania API względem dowolnego interfejsu API HTTP. Narzędzie Postman jest często używane do testowania i eksplorowania interfejsów API. W tym samouczku pobierzesz najnowszą wersję na komputery stacjonarne z witryny internetowej Postman. Narzędzie Postman ma wersje dla systemów Windows, Mac i Linux, więc pobierz wersję odpowiednią dla systemu operacyjnego.
Po zakończeniu pobierania otwórz aplikację. Na ekranie startowym zostanie wyświetlony monit o zalogowanie się lub utworzenie konta postman. Tworzenie konta jest opcjonalne i możesz go pominąć, wybierając pozycję Pomiń i przejdź do aplikacji. Utworzenie konta umożliwia zapisanie ustawień żądania interfejsu API w aplikacji Postman. Następnie możesz uzyskać dostęp do swoich żądań na innych komputerach.
Po utworzeniu konta lub pominięcia kroku zostanie wyświetlony ekran główny narzędzia Postman.
Tworzenie i konfigurowanie kolekcji Postman
Postman może organizować żądania na wiele sposobów. Na potrzeby tego samouczka utworzysz kolekcję Postman. Aby wykonać to zadanie, po lewej stronie aplikacji wybierz pozycję Kolekcje.
Wybierz pozycję Utwórz nową kolekcję , aby rozpocząć proces tworzenia kolekcji. Zostanie otwarta nowa karta w środkowym obszarze narzędzia Postman, w której nadasz kolekcji nazwę. W tym miejscu kolekcja nosi nazwę Azure Communication Services.
Po utworzeniu i nazwie kolekcji możesz ją skonfigurować.
Dodawanie zmiennych kolekcji
Aby obsługiwać uwierzytelnianie i ułatwić obsługę żądań, należy określić dwie zmienne kolekcji w nowo utworzonej kolekcji usług Komunikacyjnych. Te zmienne są dostępne dla wszystkich żądań w kolekcji. Aby rozpocząć tworzenie zmiennych, wybierz kartę Zmienne .
Na karcie Kolekcje utwórz dwie zmienne:
-
key: ta zmienna powinna być jednym z kluczy znajdujących się na stronie Usług Komunikacyjnych w portalu Azure. Przykładem jest
oW...A==. -
endpoint: ta zmienna powinna być twoim punktem końcowym usług komunikacyjnych ze strony Klucz. Upewnij się, że usuniesz ukośnik końcowy. Przykładem jest
https://contoso.communication.azure.com.
Na karcie Zmienne wprowadź te wartości w kolumnie Wartość początkowa . Wybierz Zachowaj wszystko w prawym górnym rogu. Po poprawnym skonfigurowaniu okienko Postman powinno wyglądać mniej więcej tak jak na poniższej ilustracji.
Aby dowiedzieć się więcej na temat zmiennych, zobacz dokumentację narzędzia Postman.
Tworzenie skryptu prerequest
Następnym krokiem jest utworzenie skryptu prerequest w narzędziu Postman. Skrypt prerequest jest uruchamiany przed każdym żądaniem w narzędziu Postman. Może modyfikować lub zmieniać parametry żądania. Ten skrypt służy do podpisywania żądań HTTP, aby usługi Komunikacyjne mogły je autoryzować. Aby uzyskać więcej informacji na temat wymagań dotyczących podpisywania, zobacz nasz przewodnik dotyczący uwierzytelniania.
Tworzysz ten skrypt w kolekcji, tak aby był uruchamiany na dowolnym żądaniu w kolekcji. Aby wykonać ten krok, na karcie Kolekcje wybierz pozycję Skrypt wstępny żądania.
Teraz utworzysz skrypt prerequest, wprowadzając go w obszarze tekstowym. Ten krok może być łatwiejszy, jeśli napiszesz go w pełnym edytorze kodu, takim jak Visual Studio Code , zanim go wkleisz. Ten samouczek przeprowadzi Cię przez każdą część procesu skryptu. Przejdź do końca, jeśli chcesz skopiować skrypt do narzędzia Postman i rozpocząć pracę. Zacznijmy pisać skrypt.
Napisać skrypt prerequest
Pierwszym krokiem jest utworzenie ciągu uniwersalnego czasu koordynowanego (UTC) i dodanie go do nagłówka Date HTTP. Zapisz ten ciąg w zmiennej, aby użyć go później podczas podpisywania.
// Set the Date header to our Date as a UTC String.
const dateStr = new Date().toUTCString();
pm.request.headers.upsert({key:'Date', value: dateStr});
Najpierw zahaszuj treść żądania przy użyciu algorytmu SHA 256 i umieść go w nagłówku x-ms-content-sha256. Narzędzie Postman zawiera niektóre standardowe biblioteki do tworzenia skrótów i podpisywania globalnie, więc nie trzeba ich instalować ani wymagać.
// 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
});
Użyj wcześniej określonej zmiennej punktu końcowego, aby określić wartość nagłówka HTTP Host. Nagłówek Host nie jest ustawiony przed zakończeniem przetwarzania tego skryptu.
// 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://','');
Dzięki tym informacjom możesz teraz utworzyć ciąg, który podpiszesz dla żądania HTTP. Ciąg składa się z kilku wcześniej utworzonych wartości.
// 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;
Na koniec podpiszesz ten ciąg przy użyciu klucza usług komunikacyjnych. Następnie dodaj ten klucz do żądania w nagłówku 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
});
Końcowy skrypt prerequest
Końcowy skrypt prerequest powinien wyglądać mniej więcej tak:
// 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
});
Wprowadź lub wklej ten końcowy skrypt w polu tekstowym na karcie Pre-request Script.
Po jego wprowadzeniu wybierz Ctrl+S lub wybierz pozycję Zapisz , aby zapisać skrypt w kolekcji.
Tworzenie żądania w narzędziu Postman
Teraz, gdy wszystko jest skonfigurowane, możesz utworzyć żądanie usług komunikacyjnych w narzędziu Postman. Aby rozpocząć, wybierz znak plus (+) obok kolekcji Usług komunikacyjnych.
Utworzyłeś nową kartę dla swojego żądania w Postmanie, a teraz musisz ją skonfigurować. Wyślij żądanie do interfejsu API wysyłania wiadomości SMS, a następnie zapoznaj się z dokumentacją tego interfejsu API, aby uzyskać pomoc. Skonfigurujmy żądanie w programie Postman.
Aby rozpocząć, ustaw typ żądania na POST i wprowadź {{endpoint}}/sms?api-version=2021-03-07 w polu adres URL żądania. Ten adres URL używa wcześniej utworzonej zmiennej endpoint, aby automatycznie wysłać ją do zasobu Communication Services.
Na karcie Treść żądania wybierz raw. Z listy rozwijanej po prawej stronie wybierz pozycję JSON.
Skonfigurowano żądanie wysyłania i odbierania informacji w formacie JSON.
W obszarze tekstowym wprowadź treść żądania w następującym formacie:
{
"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>"
}
]
}
Aby uzyskać from wartość, musisz uzyskać numer telefonu w portalu usług komunikacyjnych, jak wspomniano wcześniej. Wprowadź go bez spacji i prefiksu kodu kraju. Przykładem jest +15555551234. Może message to być dowolny element, który chcesz wysłać, ale Hello from Azure Communication Services jest dobrym przykładem. Wartość to powinna być numerem telefonu, do którego masz dostęp, aby można było otrzymywać wiadomości SMS. Korzystanie z własnego telefonu komórkowego jest dobrym pomysłem.
Zapisz to żądanie w utworzonej wcześniej kolekcji Usług komunikacyjnych. Ten krok gwarantuje, że pobiera zmienne i skrypt prerequest, który został wcześniej utworzony. Wybierz pozycję Zapisz w prawym górnym rogu obszaru żądania.
Zostanie wyświetlone okno dialogowe z pytaniem, jak chcesz nazwać żądanie i gdzie chcesz je zapisać. Możesz nazwać wszystko, co chcesz, ale upewnij się, że w dolnej połowie okna dialogowego wybierzesz kolekcję Usług komunikacyjnych.
Wysyłanie żądania
Teraz, gdy wszystko jest skonfigurowane, możesz wysłać żądanie i uzyskać wiadomość SMS na telefonie. Aby wykonać ten krok, upewnij się, że żądanie zostało wybrane, a następnie wybierz pozycję Wyślij.
Jeśli wszystko poszło dobrze, zobaczysz odpowiedź z usługi Communication Services, która jest kodem stanu 202.
Telefon komórkowy, którego numer podałeś w polu to, również otrzymał wiadomość SMS. Masz teraz funkcjonalną konfigurację narzędzia Postman, która może komunikować się z usługami Communication Services i wysyłać wiadomości SMS.